diff --git a/src/App/Page.php b/src/App/Page.php
index 0f14d9f6e6..37141426c3 100644
--- a/src/App/Page.php
+++ b/src/App/Page.php
@@ -115,76 +115,40 @@ class Page implements ArrayAccess
 		}
 	}
 
+	// ArrayAccess interface
+
 	/**
-	 * Whether a offset exists
-	 *
-	 * @link  https://php.net/manual/en/arrayaccess.offsetexists.php
-	 *
-	 * @param mixed $offset <p>
-	 *                      An offset to check for.
-	 *                      </p>
-	 *
-	 * @return boolean true on success or false on failure.
-	 * </p>
-	 * <p>
-	 * The return value will be casted to boolean if non-boolean was returned.
-	 * @since 5.0.0
+	 * @inheritDoc
 	 */
+	#[\ReturnTypeWillChange]
 	public function offsetExists($offset): bool
 	{
 		return isset($this->page[$offset]);
 	}
 
 	/**
-	 * Offset to retrieve
-	 *
-	 * @link  https://php.net/manual/en/arrayaccess.offsetget.php
-	 *
-	 * @param mixed $offset <p>
-	 *                      The offset to retrieve.
-	 *                      </p>
-	 *
-	 * @return mixed Can return all value types.
-	 * @since 5.0.0
+	 * @inheritDoc
 	 */
+	#[\ReturnTypeWillChange]
 	public function offsetGet($offset)
 	{
 		return $this->page[$offset] ?? null;
 	}
 
 	/**
-	 * Offset to set
-	 *
-	 * @link  https://php.net/manual/en/arrayaccess.offsetset.php
-	 *
-	 * @param mixed $offset <p>
-	 *                      The offset to assign the value to.
-	 *                      </p>
-	 * @param mixed $value  <p>
-	 *                      The value to set.
-	 *                      </p>
-	 *
-	 * @return void
-	 * @since 5.0.0
+	 * @inheritDoc
 	 */
-	public function offsetSet($offset, $value)
+	#[\ReturnTypeWillChange]
+	public function offsetSet($offset, $value): void
 	{
 		$this->page[$offset] = $value;
 	}
 
 	/**
-	 * Offset to unset
-	 *
-	 * @link  https://php.net/manual/en/arrayaccess.offsetunset.php
-	 *
-	 * @param mixed $offset <p>
-	 *                      The offset to unset.
-	 *                      </p>
-	 *
-	 * @return void
-	 * @since 5.0.0
+	 * @inheritDoc
 	 */
-	public function offsetUnset($offset)
+	#[\ReturnTypeWillChange]
+	public function offsetUnset($offset): void
 	{
 		if (isset($this->page[$offset])) {
 			unset($this->page[$offset]);
@@ -310,7 +274,7 @@ class Page implements ArrayAccess
 		}
 		return $pageURL;
 	}
-      
+
 	/**
 	 * Initializes Page->page['footer'].
 	 *
diff --git a/src/Content/Nav.php b/src/Content/Nav.php
index 0000b3d296..cb2edb4eb6 100644
--- a/src/Content/Nav.php
+++ b/src/Content/Nav.php
@@ -244,12 +244,8 @@ class Nav
 		}
 
 		$gdirpath = 'directory';
-
-		if (strlen(DI::config()->get('system', 'singleuser'))) {
-			$gdir = DI::config()->get('system', 'directory');
-			if (strlen($gdir)) {
-				$gdirpath = Profile::zrl($gdir, true);
-			}
+		if (DI::config()->get('system', 'singleuser') && DI::config()->get('system', 'directory')) {
+			$gdirpath = Profile::zrl(DI::config()->get('system', 'directory'), true);
 		}
 
 		if ((DI::userSession()->getLocalUserId() || DI::config()->get('system', 'community_page_style') != Community::DISABLED_VISITOR) &&
diff --git a/src/Database/Database.php b/src/Database/Database.php
index 79c39e9af7..a34b17adbe 100644
--- a/src/Database/Database.php
+++ b/src/Database/Database.php
@@ -43,12 +43,12 @@ use Psr\Log\NullLogger;
  */
 class Database
 {
-	const PDO = 'pdo';
+	const PDO    = 'pdo';
 	const MYSQLI = 'mysqli';
 
 	const INSERT_DEFAULT = 0;
-	const INSERT_UPDATE = 1;
-	const INSERT_IGNORE = 2;
+	const INSERT_UPDATE  = 1;
+	const INSERT_IGNORE  = 2;
 
 	protected $connected = false;
 
@@ -64,18 +64,18 @@ class Database
 	 * @var LoggerInterface
 	 */
 	protected $logger;
-	protected $server_info    = '';
+	protected $server_info = '';
 	/** @var PDO|mysqli */
 	protected $connection;
 	protected $driver = '';
 	protected $pdo_emulate_prepares = false;
-	private $error          = '';
-	private $errorno        = 0;
-	private $affected_rows  = 0;
+	private $error = '';
+	private $errorno = 0;
+	private $affected_rows = 0;
 	protected $in_transaction = false;
-	protected $in_retrial     = false;
-	protected $testmode       = false;
-	private $relation       = [];
+	protected $in_retrial = false;
+	protected $testmode = false;
+	private $relation = [];
 	/** @var DbaDefinition */
 	protected $dbaDefinition;
 	/** @var ViewDefinition */
@@ -112,23 +112,22 @@ class Database
 		$port       = 0;
 		$serveraddr = trim($this->configCache->get('database', 'hostname'));
 		$serverdata = explode(':', $serveraddr);
-		$server     = $serverdata[0];
+		$host       = trim($serverdata[0]);
 		if (count($serverdata) > 1) {
 			$port = trim($serverdata[1]);
 		}
 
-		if (!empty(trim($this->configCache->get('database', 'port')))) {
-			$port = trim($this->configCache->get('database', 'port'));
+		if (trim($this->configCache->get('database', 'port') ?? 0)) {
+			$port = trim($this->configCache->get('database', 'port') ?? 0);
 		}
 
-		$server  = trim($server);
-		$user    = trim($this->configCache->get('database', 'username'));
-		$pass    = trim($this->configCache->get('database', 'password'));
-		$db      = trim($this->configCache->get('database', 'database'));
-		$charset = trim($this->configCache->get('database', 'charset'));
-		$socket  = trim($this->configCache->get('database', 'socket')); 
+		$user     = trim($this->configCache->get('database', 'username'));
+		$pass     = trim($this->configCache->get('database', 'password'));
+		$database = trim($this->configCache->get('database', 'database'));
+		$charset  = trim($this->configCache->get('database', 'charset'));
+		$socket   = trim($this->configCache->get('database', 'socket'));
 
-		if (!(strlen($server) && strlen($user))) {
+		if (!$host && !$socket || !$user) {
 			return false;
 		}
 
@@ -138,19 +137,20 @@ class Database
 
 		if (!$this->configCache->get('database', 'disable_pdo') && class_exists('\PDO') && in_array('mysql', PDO::getAvailableDrivers())) {
 			$this->driver = self::PDO;
-			$connect      = "mysql:host=" . $server . ";dbname=" . $db;
-
-			if ($port > 0) {
-				$connect .= ";port=" . $port;
+			if ($socket) {
+				$connect = 'mysql:unix_socket=' . $socket;
+			} else {
+				$connect = 'mysql:host=' . $host;
+				if ($port > 0) {
+					$connect .= ';port=' . $port;
+				}
 			}
 
 			if ($charset) {
-				$connect .= ";charset=" . $charset;
+				$connect .= ';charset=' . $charset;
 			}
 
-			if ($socket) {
-				$connect .= ";$unix_socket=" . $socket;
-			}
+			$connect .= ';dbname=' . $database;
 
 			try {
 				$this->connection = @new PDO($connect, $user, $pass, [PDO::ATTR_PERSISTENT => $persistent]);
@@ -165,10 +165,12 @@ class Database
 		if (!$this->connected && class_exists('\mysqli')) {
 			$this->driver = self::MYSQLI;
 
-			if ($port > 0) {
-				$this->connection = @new mysqli($server, $user, $pass, $db, $port);
+			if ($socket) {
+				$this->connection = @new mysqli(null, $user, $pass, $database, null, $socket);
+			} elseif ($port > 0) {
+				$this->connection = @new mysqli($host, $user, $pass, $database, $port);
 			} else {
-				$this->connection = @new mysqli($server, $user, $pass, $db);
+				$this->connection = @new mysqli($host, $user, $pass, $database);
 			}
 
 			if (!mysqli_connect_errno()) {
@@ -177,11 +179,6 @@ class Database
 				if ($charset) {
 					$this->connection->set_charset($charset);
 				}
-
-				if ($socket) {
-					$this->connection->set_socket($socket);
-				}
-
 			}
 		}
 
@@ -198,6 +195,7 @@ class Database
 	{
 		$this->testmode = $test;
 	}
+
 	/**
 	 * Sets the logger for DBA
 	 *
@@ -222,6 +220,7 @@ class Database
 	{
 		$this->profiler = $profiler;
 	}
+
 	/**
 	 * Disconnects the current database connection
 	 */
@@ -338,12 +337,12 @@ class Database
 		}
 
 		$watchlist = explode(',', $this->configCache->get('system', 'db_log_index_watch'));
-		$denylist = explode(',', $this->configCache->get('system', 'db_log_index_denylist'));
+		$denylist  = explode(',', $this->configCache->get('system', 'db_log_index_denylist'));
 
 		while ($row = $this->fetch($r)) {
 			if ((intval($this->configCache->get('system', 'db_loglimit_index')) > 0)) {
 				$log = (in_array($row['key'], $watchlist) &&
-				        ($row['rows'] >= intval($this->configCache->get('system', 'db_loglimit_index'))));
+					($row['rows'] >= intval($this->configCache->get('system', 'db_loglimit_index'))));
 			} else {
 				$log = false;
 			}
@@ -358,11 +357,15 @@ class Database
 
 			if ($log) {
 				$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
-				@file_put_contents($this->configCache->get('system', 'db_log_index'), DateTimeFormat::utcNow() . "\t" .
-				                                                                      $row['key'] . "\t" . $row['rows'] . "\t" . $row['Extra'] . "\t" .
-				                                                                      basename($backtrace[1]["file"]) . "\t" .
-				                                                                      $backtrace[1]["line"] . "\t" . $backtrace[2]["function"] . "\t" .
-				                                                                      substr($query, 0, 4000) . "\n", FILE_APPEND);
+				@file_put_contents(
+					$this->configCache->get('system', 'db_log_index'),
+					DateTimeFormat::utcNow() . "\t" .
+					$row['key'] . "\t" . $row['rows'] . "\t" . $row['Extra'] . "\t" .
+					basename($backtrace[1]["file"]) . "\t" .
+					$backtrace[1]["line"] . "\t" . $backtrace[2]["function"] . "\t" .
+					substr($query, 0, 4000) . "\n",
+					FILE_APPEND
+				);
 			}
 		}
 	}
@@ -449,7 +452,7 @@ class Database
 	{
 		$server_info = $this->serverInfo();
 		if (version_compare($server_info, '5.7.5', '<') ||
-		    (stripos($server_info, 'MariaDB') !== false)) {
+			(stripos($server_info, 'MariaDB') !== false)) {
 			$sql = str_ireplace('ANY_VALUE(', 'MIN(', $sql);
 		}
 		return $sql;
@@ -647,7 +650,7 @@ class Database
 					} elseif (is_string($args[$param])) {
 						$param_types .= 's';
 					} elseif (is_object($args[$param]) && method_exists($args[$param], '__toString')) {
-						$param_types .= 's';
+						$param_types  .= 's';
 						$args[$param] = (string)$args[$param];
 					} else {
 						$param_types .= 'b';
@@ -743,10 +746,14 @@ class Database
 				$duration  = round($duration, 3);
 				$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
 
-				@file_put_contents($this->configCache->get('system', 'db_log'), DateTimeFormat::utcNow() . "\t" . $duration . "\t" .
-				                                                                basename($backtrace[1]["file"]) . "\t" .
-				                                                                $backtrace[1]["line"] . "\t" . $backtrace[2]["function"] . "\t" .
-				                                                                substr($this->replaceParameters($sql, $args), 0, 4000) . "\n", FILE_APPEND);
+				@file_put_contents(
+					$this->configCache->get('system', 'db_log'),
+					DateTimeFormat::utcNow() . "\t" . $duration . "\t" .
+					basename($backtrace[1]["file"]) . "\t" .
+					$backtrace[1]["line"] . "\t" . $backtrace[2]["function"] . "\t" .
+					substr($this->replaceParameters($sql, $args), 0, 4000) . "\n",
+					FILE_APPEND
+				);
 			}
 		}
 		return $retval;
@@ -1365,7 +1372,7 @@ class Database
 			. $condition_string;
 
 		// Combines the updated fields parameter values with the condition parameter values
-		$params  = array_merge(array_values($fields), $condition);
+		$params = array_merge(array_values($fields), $condition);
 
 		return $this->e($sql, $params);
 	}
@@ -1415,8 +1422,8 @@ class Database
 	/**
 	 * Escape fields, adding special treatment for "group by" handling
 	 *
-	 * @param array $fields 
-	 * @param array $options 
+	 * @param array $fields
+	 * @param array $options
 	 * @return array Escaped fields
 	 */
 	private function escapeFields(array $fields, array $options): array
@@ -1438,8 +1445,7 @@ class Database
 			}
 		}
 
-		array_walk($fields, function(&$value, $key) use ($options)
-		{
+		array_walk($fields, function (&$value, $key) use ($options) {
 			$field = $value;
 			$value = DBA::quoteIdentifier($field);
 
@@ -1487,7 +1493,7 @@ class Database
 		}
 
 		if (count($fields) > 0) {
-			$fields = $this->escapeFields($fields, $params);
+			$fields        = $this->escapeFields($fields, $params);
 			$select_string = implode(', ', $fields);
 		} else {
 			$select_string = '*';
@@ -1827,16 +1833,16 @@ class Database
 	/**
 	 * Replaces a string in the provided fields of the provided table
 	 *
-	 * @param string $table  Table name
-	 * @param array  $fields List of field names in the provided table
-	 * @param string $search String to search for
+	 * @param string $table   Table name
+	 * @param array  $fields  List of field names in the provided table
+	 * @param string $search  String to search for
 	 * @param string $replace String to replace with
 	 * @return void
 	 * @throws \Exception
 	 */
 	public function replaceInTableFields(string $table, array $fields, string $search, string $replace)
 	{
-		$search = $this->escape($search);
+		$search  = $this->escape($search);
 		$replace = $this->escape($replace);
 
 		$upd = [];
diff --git a/src/Model/APContact.php b/src/Model/APContact.php
index 742efcf190..3b568f39f1 100644
--- a/src/Model/APContact.php
+++ b/src/Model/APContact.php
@@ -383,7 +383,7 @@ class APContact
 		// kroeg:blocks, updated
 
 		// When the photo is too large, try to shorten it by removing parts
-		if (strlen($apcontact['photo']) > 255) {
+		if (strlen($apcontact['photo'] ?? '') > 255) {
 			$parts = parse_url($apcontact['photo']);
 			unset($parts['fragment']);
 			$apcontact['photo'] = (string)Uri::fromParts($parts);
@@ -574,7 +574,7 @@ class APContact
 	 *
 	 * @param array $apcontact
 	 *
-	 * @return bool 
+	 * @return bool
 	 */
 	public static function isRelay(array $apcontact): bool
 	{
diff --git a/src/Model/Item.php b/src/Model/Item.php
index 900bf3a2c4..7c8804a290 100644
--- a/src/Model/Item.php
+++ b/src/Model/Item.php
@@ -210,7 +210,7 @@ class Item
 						$fields['raw-body'] = BBCode::removeSharedData($fields['raw-body']);
 					}
 				}
-		
+
 				Post\Media::insertFromAttachmentData($item['uri-id'], $fields['body']);
 
 				$content_fields = ['raw-body' => trim($fields['raw-body'] ?? $fields['body'])];
@@ -337,7 +337,7 @@ class Item
 		 * generate a resource-id and therefore aren't intimately linked to the item.
 		 */
 		/// @TODO: this should first check if photo is used elsewhere
-		if (strlen($item['resource-id'])) {
+		if ($item['resource-id']) {
 			Photo::delete(['resource-id' => $item['resource-id'], 'uid' => $item['uid']]);
 		}
 
diff --git a/src/Model/Log/ParsedLogIterator.php b/src/Model/Log/ParsedLogIterator.php
index 4309e4cd00..e3415da8ca 100644
--- a/src/Model/Log/ParsedLogIterator.php
+++ b/src/Model/Log/ParsedLogIterator.php
@@ -160,7 +160,7 @@ class ParsedLogIterator implements \Iterator
 	 * @see Iterator::next()
 	 * @return void
 	 */
-	public function next()
+	public function next(): void
 	{
 		$parsed = $this->read();
 
@@ -177,7 +177,7 @@ class ParsedLogIterator implements \Iterator
 	 * @see Iterator::rewind()
 	 * @return void
 	 */
-	public function rewind()
+	public function rewind(): void
 	{
 		$this->value = null;
 		$this->reader->rewind();
@@ -200,9 +200,9 @@ class ParsedLogIterator implements \Iterator
 	 * Return current iterator value
 	 *
 	 * @see Iterator::current()
-	 * @return ?ParsedLogLing
+	 * @return ?ParsedLogLine
 	 */
-	public function current()
+	public function current(): ?ParsedLogLine
 	{
 		return $this->value;
 	}
diff --git a/src/Model/Post/Media.php b/src/Model/Post/Media.php
index 6cee11e6c8..04c0db0f80 100644
--- a/src/Model/Post/Media.php
+++ b/src/Model/Post/Media.php
@@ -279,7 +279,7 @@ class Media
 		if (!empty($contact['gsid'])) {
 			$gserver = DBA::selectFirst('gserver', ['url', 'site_name'], ['id' => $contact['gsid']]);
 		}
-		
+
 		$media['type'] = self::ACTIVITY;
 		$media['media-uri-id'] = $item['uri-id'];
 		$media['height'] = null;
@@ -687,7 +687,7 @@ class Media
 				$previews[] = $medium['preview'];
 			}
 
-			$type = explode('/', current(explode(';', $medium['mimetype'])));
+			$type = explode('/', explode(';', $medium['mimetype'])[0]);
 			if (count($type) < 2) {
 				Logger::info('Unknown MimeType', ['type' => $type, 'media' => $medium]);
 				$filetype = 'unkn';
diff --git a/src/Module/Home.php b/src/Module/Home.php
index ca4c4b8959..06bfa5eba5 100644
--- a/src/Module/Home.php
+++ b/src/Module/Home.php
@@ -46,7 +46,7 @@ class Home extends BaseModule
 			DI::baseUrl()->redirect('network');
 		}
 
-		if (strlen($config->get('system', 'singleuser'))) {
+		if ($config->get('system', 'singleuser')) {
 			DI::baseUrl()->redirect('/profile/' . $config->get('system', 'singleuser'));
 		}
 
diff --git a/src/Network/HTTPClient/Client/HttpClient.php b/src/Network/HTTPClient/Client/HttpClient.php
index cfc8fbfab1..32a1a22fc2 100644
--- a/src/Network/HTTPClient/Client/HttpClient.php
+++ b/src/Network/HTTPClient/Client/HttpClient.php
@@ -254,7 +254,7 @@ class HttpClient implements ICanSendHttpRequests
 		$urlResult = $this->resolver->resolveURL($url);
 
 		if ($urlResult->didErrorOccur()) {
-			throw new TransferException($urlResult->getErrorMessageString(), $urlResult->getHTTPStatusCode());
+			throw new TransferException($urlResult->getErrorMessageString(), $urlResult->getHTTPStatusCode() ?? 0);
 		}
 
 		return $urlResult->getURL();
diff --git a/src/Object/EMail/IEmail.php b/src/Object/EMail/IEmail.php
index f1e66a224f..9fd1fe3da6 100644
--- a/src/Object/EMail/IEmail.php
+++ b/src/Object/EMail/IEmail.php
@@ -80,7 +80,7 @@ interface IEmail extends JsonSerializable
 	 *
 	 * @return string
 	 */
-	function getMessage(bool $plain = false);
+	function getMessage(bool $plain = false): string;
 
 	/**
 	 * Gets the additional mail header array
diff --git a/src/Object/Email.php b/src/Object/Email.php
index 57eb0c17e9..4d5a11715c 100644
--- a/src/Object/Email.php
+++ b/src/Object/Email.php
@@ -110,12 +110,12 @@ class Email implements IEmail
 	/**
 	 * {@inheritDoc}
 	 */
-	public function getMessage(bool $plain = false)
+	public function getMessage(bool $plain = false): string
 	{
 		if ($plain) {
 			return $this->msgText;
 		} else {
-			return $this->msgHtml;
+			return $this->msgHtml ?? '';
 		}
 	}
 
diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php
index 8a5969dde1..09f4380b0b 100644
--- a/src/Protocol/Diaspora.php
+++ b/src/Protocol/Diaspora.php
@@ -3638,7 +3638,7 @@ class Diaspora
 
 		Logger::info('Got relayable data ' . $type . ' for item ' . $item['guid'] . ' (' . $item['id'] . ')');
 
-		$msg = json_decode($item['signed_text'], true);
+		$msg = json_decode($item['signed_text'] ?? '', true);
 
 		$message = [];
 		if (is_array($msg)) {
diff --git a/src/Render/FriendicaSmartyEngine.php b/src/Render/FriendicaSmartyEngine.php
index 5ea01166fd..201d99f822 100644
--- a/src/Render/FriendicaSmartyEngine.php
+++ b/src/Render/FriendicaSmartyEngine.php
@@ -81,7 +81,7 @@ final class FriendicaSmartyEngine extends TemplateEngine
 
 		// "middleware": inject variables into templates
 		$arr = [
-			'template' => basename($this->smarty->filename),
+			'template' => basename($this->smarty->filename ?? ''),
 			'vars' => $vars
 		];
 		Hook::callAll('template_vars', $arr);
diff --git a/src/Worker/Notifier.php b/src/Worker/Notifier.php
index 10fe6e3abc..db593b6a47 100644
--- a/src/Worker/Notifier.php
+++ b/src/Worker/Notifier.php
@@ -336,7 +336,7 @@ class Notifier
 				foreach ($items as $item) {
 					$recipients[] = $item['contact-id'];
 					// pull out additional tagged people to notify (if public message)
-					if ($public_message && strlen($item['inform'])) {
+					if ($public_message && $item['inform']) {
 						$people = explode(',',$item['inform']);
 						foreach ($people as $person) {
 							if (substr($person,0,4) === 'cid:') {
diff --git a/static/defaults.config.php b/static/defaults.config.php
index a6c98abd14..a8fe5f8686 100644
--- a/static/defaults.config.php
+++ b/static/defaults.config.php
@@ -38,12 +38,12 @@ return [
 		'port' => null,
 
 		// socket (String)
-                // Socket of the database server.
-                // Can be used instead of adding a socket location to the hostname
-                'socket' => '',
+		// Socket of the database server.
+		// Can be used instead of adding a socket location to the hostname
+		'socket' => '',
 
 		// user (String)
-		// Database user name. Please don't use "root".
+		// Database username. Please don't use "root".
 		'username' => '',
 
 		// pass (String)
@@ -64,7 +64,7 @@ return [
 		'pdo_emulate_prepares' => true,
 
 		// disable_pdo (Boolean)
-		// PDO is used by default (if available). Otherwise MySQLi will be used.
+		// PDO is used by default (if available). Otherwise, MySQLi will be used.
 		'disable_pdo' => false,
 
 		// persistent (Boolean)
@@ -145,7 +145,7 @@ return [
 		'block_local_dir' => false,
 
 		// blocked_tags (String)
-		// Comma separated list of hash tags that shouldn't be displayed in the trending tags
+		// Comma separated list of hashtags that shouldn't be displayed in the trending tags
 		'blocked_tags' => '',
 
 		// community_no_sharer (Boolean)
@@ -153,7 +153,7 @@ return [
 		'community_no_sharer' => false,
 
 		// contact_update_limit (Integer)
-		// How much contacts should be checked at a time?
+		// How many contacts should be checked at a time?
 		'contact_update_limit' => 100,
 
 		// cron_interval (Integer)
@@ -259,7 +259,7 @@ return [
 		'disable_implicit_mentions' => false,
 
 		// disable_url_validation (Boolean)
-		// Disables the DNS lookup of an URL.
+		// Disables the DNS lookup of a URL.
 		'disable_url_validation' => false,
 
 		// disable_password_exposed (Boolean)
@@ -283,7 +283,7 @@ return [
 		'dlogip' => '',
 
 		// expire-notify-priority (integer)
-		// Priority for the expirary notification 
+		// Priority for the expirary notification
 		'expire-notify-priority' => Friendica\Core\Worker::PRIORITY_LOW,
 
 		// fetch_by_worker (Boolean)
@@ -300,11 +300,11 @@ return [
 
 		// groupedit_image_limit (Integer)
 		// Number of contacts at which the group editor should switch from display the profile pictures of the contacts to only display the names.
-		// This can alternatively be set on a per account basis in the pconfig table.
+		// This can alternatively be set on a per-account basis in the pconfig table.
 		'groupedit_image_limit' => 400,
 
 		// gserver_update_limit (Integer)
-		// How much servers should be checked at a time?
+		// How many servers should be checked at a time?
 		'gserver_update_limit' => 100,
 
 		// hsts (Boolean)
@@ -330,7 +330,7 @@ return [
 		'ipv4_resolve' => false,
 
 		// invitation_only (Boolean)
-		// If set true registration is only possible after a current member of the node has send an invitation.
+		// If set true registration is only possible after a current member of the node has sent an invitation.
 		'invitation_only' => false,
 
 		// itemspage_network (Integer)
@@ -343,7 +343,7 @@ return [
 		'itemspage_network_mobile' => 20,
 
 		// jpeg_quality (Integer)
-		// 
+		//
 		// Lower numbers save space at cost of image detail
 		// where n is between 1 and 100, and with very poor results below about 50
 		'jpeg_quality' => 100,
@@ -415,13 +415,13 @@ return [
 
 		// max_image_length (Integer)
 		// An alternate way of limiting picture upload sizes.
-		// Specify the maximum pixel  length that pictures are allowed to be (for non-square pictures, it will apply to the longest side).
+		// Specify the maximum pixel length that pictures are allowed to be (for non-square pictures, it will apply to the longest side).
 		// Pictures longer than this length will be resized to be this length (on the longest side, the other side will be scaled appropriately).
 		// If you don't want to set a maximum length, set to -1.
 		'max_image_length' => -1,
 
 		// max_likers (Integer)
-		// Maximum number of "people who like (or don't like) this"  that we will list by name
+		// Maximum number of "people who like (or don't like) this" that we will list by name
 		'max_likers' => 75,
 
 		// max_processes_backend (Integer)
@@ -471,7 +471,7 @@ return [
 		'no_oembed' => false,
 
 		// no_redirect_list (Array)
-		// List of domains where HTTP redirects should be ignored. 
+		// List of domains where HTTP redirects should be ignored.
 		'no_redirect_list' => [],
 
 		// no_smilies (Boolean)
@@ -483,7 +483,7 @@ return [
 		'paranoia' => false,
 
 		// permit_crawling (Boolean)
-		// Restricts the search for not logged in users to one search per minute.
+		// Restricts the search for not logged-in users to one search per minute.
 		'permit_crawling' => false,
 
 		// pidfile (Path)
@@ -491,7 +491,7 @@ return [
 		'pidfile' => '',
 
 		// png_quality (Integer)
-		// Sets the ImageMagick compression level for PNG images. Values ranges from 0 (uncompressed) to 9 (most compressed).
+		// Sets the ImageMagick compression level for PNG images. Values range from 0 (uncompressed) to 9 (most compressed).
 		'png_quality' => 8,
 
 		// profiler (Boolean)
@@ -568,11 +568,11 @@ return [
 		'set_creation_date' => false,
 
 		// show_global_community_hint (Boolean)
-		// When the global community page is enabled, use this option to display a hint above the stream, that this is a collection of all public top-level postings that arrive on your node.
+		// When the global community page is enabled, use this option to display a hint above the stream, that this is a collection of all public top-level postings that arrive at your node.
 		'show_global_community_hint' => false,
 
 		// show_received (Boolean)
-		// Show the receive data along with the post creation date
+		// Show the received date along with the post creation date
 		'show_received' => true,
 
 		// show_received_seconds (Integer)
@@ -609,13 +609,13 @@ return [
 
 		// username_min_length (Integer)
 		// The minimum character length a username can be.
-		// This length is check once the username has been trimmed and multiple spaces have been collapsed into one.
+		// This length is checked once the username has been trimmed and multiple spaces have been collapsed into one.
 		// Minimum for this config value is 1. Maximum is 64 as the resulting profile URL mustn't be longer than 255 chars.
 		'username_min_length' => 3,
 
 		// username_max_length (Integer)
 		// The maximum character length a username can be.
-		// This length is check once the username has been trimmed and multiple spaces have been collapsed into one.
+		// This length is checked once the username has been trimmed and multiple spaces have been collapsed into one.
 		// Minimum for this config value is 1. Maximum is 64 as the resulting profile URL mustn't be longer than 255 chars.
 		'username_max_length' => 48,
 
@@ -738,8 +738,7 @@ return [
 		'config_dir' => 'view/smarty3',
 
 		// use_sub_dirs (Boolean)
-		// By default the template cache is stored in several sub directories.
-		// 
+		// By default the template cache is stored in several subdirectories.
 		'use_sub_dirs' => true,
 	],
 ];
diff --git a/view/theme/frio/php/PHPColors/Color.php b/view/theme/frio/php/PHPColors/Color.php
index e4de79c40a..30de579966 100644
--- a/view/theme/frio/php/PHPColors/Color.php
+++ b/view/theme/frio/php/PHPColors/Color.php
@@ -132,16 +132,16 @@ class Color {
 
             $var_1 = 2 * $L - $var_2;
 
-            $r = round(255 * self::_huetorgb( $var_1, $var_2, $H + (1/3) ));
-            $g = round(255 * self::_huetorgb( $var_1, $var_2, $H ));
-            $b = round(255 * self::_huetorgb( $var_1, $var_2, $H - (1/3) ));
+            $r = 255 * self::_huetorgb( $var_1, $var_2, $H + (1/3) );
+            $g = 255 * self::_huetorgb( $var_1, $var_2, $H );
+            $b = 255 * self::_huetorgb( $var_1, $var_2, $H - (1/3) );
 
         }
 
         // Convert to hex
-        $r = dechex($r);
-        $g = dechex($g);
-        $b = dechex($b);
+        $r = dechex(round($r));
+        $g = dechex(round($g));
+        $b = dechex(round($b));
 
         // Make sure we get 2 digits for decimals
         $r = (strlen("".$r)===1) ? "0".$r:$r;