Skip to content
Snippets Groups Projects
Commit bc94d885 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Started work on rewrite

parent bd034a29
No related branches found
No related tags found
No related merge requests found
Showing
with 827 additions and 21 deletions
......@@ -9,11 +9,11 @@ require_once '../../backend/helper/SessionHelper.php';
$config = Config::createFromGlobals();
$renderer = new RendererHelper($config);
$backend = Backend::createFromConfig($config);
$backend = Database::createFromConfig($config);
try {
$backend->authenticateFromHeader($_SERVER['HTTP_AUTHORIZATION'] ?: "");
$renderer->renderJson($backend->context($_GET['anchor'] ?: 0, $_GET['buffer'] ?: 0, $_GET['before'], $_GET['after']));
$renderer->renderJson($backend->context($_REQUEST['anchor'] ?: 0, $_REQUEST['buffer'] ?: 0, $_REQUEST['before'], $_REQUEST['after']));
} catch (\Exception $e) {
$renderer->renderJson(["error" => $e->getMessage()]);
}
\ No newline at end of file
......@@ -9,11 +9,11 @@ require_once '../../backend/helper/SessionHelper.php';
$config = Config::createFromGlobals();
$renderer = new RendererHelper($config);
$backend = Backend::createFromConfig($config);
$backend = Database::createFromConfig($config);
try {
$backend->authenticateFromHeader($_SERVER['HTTP_AUTHORIZATION'] ?: "");
$renderer->renderJson($backend->findBuffers($_GET['q'] ?: "", $_GET['since'] ?: null, $_GET['before'] ?: null, $_GET['buffer'] ?: null, $_GET['network'] ?: null));
$renderer->renderJson($backend->findBuffers($_REQUEST['query'] ?: "", $_REQUEST['since'] ?: null, $_REQUEST['before'] ?: null, $_REQUEST['buffer'] ?: null, $_REQUEST['network'] ?: null));
} catch (\Exception $e) {
$renderer->renderJson(["error" => $e->getMessage()]);
}
\ No newline at end of file
......@@ -9,11 +9,11 @@ require_once '../../backend/helper/SessionHelper.php';
$config = Config::createFromGlobals();
$renderer = new RendererHelper($config);
$backend = Backend::createFromConfig($config);
$backend = Database::createFromConfig($config);
try {
$backend->authenticateFromHeader($_SERVER['HTTP_AUTHORIZATION'] ?: "");
$renderer->renderJson($backend->findInBuffer($_GET['query'] ?: "", $_GET['since'] ?: null, $_GET['before'] ?: null, $_GET['buffer'] ?: 0, $_GET['offset'] ?: 0, $_GET['limit'] ?: 20));
$renderer->renderJson($backend->findInBuffer($_REQUEST['query'] ?: "", $_REQUEST['since'] ?: null, $_REQUEST['before'] ?: null, $_REQUEST['buffer'] ?: 0, $_REQUEST['offset'] ?: 0, $_REQUEST['limit'] ?: 20));
} catch (\Exception $e) {
$renderer->renderJson(["error" => $e->getMessage()]);
}
\ No newline at end of file
......@@ -9,11 +9,11 @@ require_once '../../backend/helper/SessionHelper.php';
$config = Config::createFromGlobals();
$renderer = new RendererHelper($config);
$backend = Backend::createFromConfig($config);
$backend = Database::createFromConfig($config);
try {
$backend->authenticateFromHeader($_SERVER['HTTP_AUTHORIZATION'] ?: "");
$renderer->renderJson($backend->findInBufferMultiple($_GET['q'] ?: "", $_GET['since'] ?: null, $_GET['before'] ?: null, $_GET['limit'] ?: 4));
$renderer->renderJson($backend->findInBufferMultiple($_REQUEST['q'] ?: "", $_REQUEST['since'] ?: null, $_REQUEST['before'] ?: null, $_REQUEST['limit'] ?: 4));
} catch (\Exception $e) {
$renderer->renderJson(["error" => $e->getMessage()]);
}
\ No newline at end of file
......@@ -8,7 +8,7 @@ require_once 'User.php';
require_once 'Config.php';
require_once 'helper/AuthHelper.php';
class Backend {
class Database {
private $storedFindBuffers;
private $storedFindInBuffer;
private $loadBefore;
......@@ -28,7 +28,7 @@ class Backend {
FROM backlog
JOIN buffer ON backlog.bufferid = buffer.bufferid
JOIN network ON buffer.networkid = network.networkid,
plainto_tsquery('english'::REGCONFIG, :query) query
phraseto_tsquery_multilang(:query) query
WHERE (backlog.type & 23559) > 0
AND buffer.userid = :userid
AND (NOT(:_since) OR backlog.time > to_timestamp(:since))
......@@ -60,7 +60,7 @@ class Backend {
) AS rank
FROM backlog
JOIN buffer ON backlog.bufferid = buffer.bufferid,
plainto_tsquery('english'::REGCONFIG, :query) query
phraseto_tsquery_multilang(:query) query
WHERE (backlog.type & 23559) > 0
AND (NOT(:_since) OR backlog.time > to_timestamp(:since))
AND (NOT(:_before) OR backlog.time < to_timestamp(:before))
......@@ -80,7 +80,7 @@ class Backend {
FROM backlog
JOIN sender ON backlog.senderid = sender.senderid
JOIN buffer ON backlog.bufferid = buffer.bufferid,
plainto_tsquery('english'::REGCONFIG, :query) query
phraseto_tsquery_multilang(:query) query
WHERE (backlog.type & 23559) > 0
AND (NOT(:_since) OR backlog.time > to_timestamp(:since))
AND (NOT(:_before) OR backlog.time < to_timestamp(:before))
......@@ -133,12 +133,12 @@ class Backend {
");
}
public static function createFromOptions(string $database_connector, string $username, string $password) : Backend {
return new Backend($database_connector, $username, $password);
public static function createFromOptions(string $database_connector, string $username, string $password) : Database {
return new Database($database_connector, $username, $password);
}
public static function createFromConfig(Config $config) : Backend {
return new Backend($config->database_connector, $config->username, $config->password);
public static function createFromConfig(Config $config) : Database {
return new Database($config->database_connector, $config->username, $config->password);
}
public function authenticateFromHeader(string $header) : bool {
......
......@@ -10,7 +10,7 @@ require_once 'backend/helper/SessionHelper.php';
$session = SessionHelper::getInstance();
$config = Config::createFromGlobals();
$renderer = new RendererHelper($config, $session);
$backend = Backend::createFromConfig($config);
$backend = Database::createFromConfig($config);
if (!$backend->authenticate($session->username ?: '', $session->password ?: '')) {
$session->destroy();
......
......@@ -10,7 +10,7 @@ require_once 'backend/helper/SessionHelper.php';
$session = SessionHelper::getInstance();
$config = Config::createFromGlobals();
$renderer = new RendererHelper($config, $session);
$backend = Backend::createFromConfig($config);
$backend = Database::createFromConfig($config);
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_GET['action']) && $_GET['action'] === 'login') {
$username = $_POST['username'] ?: '';
......
File deleted
.results
max-width: 1328px
padding: 56px 6rem 8rem 6rem
margin: 0 auto
transition: opacity 400ms
.buffer
display: block
margin-top: 0
margin-bottom: 20px
border: rgba(0, 0, 0, 0)
transition: all 400ms
.title
border-bottom: 1px solid transparent
border-top: 1px solid transparent
color: #616161
margin-top: 20px
padding-bottom: 10px
padding-left: 22px
position: relative
will-change: transform, -webkit-transform
.inline-button
display: block
background: #f5f5f5
font-size: 16px
height: 48px
line-height: 48px
color: rgb(113, 113, 113)
text-align: center
font-style: italic
cursor: pointer
-webkit-user-select: none
-moz-user-select: none
position: relative
&:before
bottom: 0
box-shadow: 0 -1px 0 #e5e5e5, 0 0 2px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24)
content: ''
display: block
left: 0
pointer-events: none
position: absolute
right: 0
top: 0
.container
font-size: 13px
.context
.container
.before
.after
&:not(.selected)
.before, .after
display: none
.inline-button
display: none
.message
display: flex
line-height: 24px
padding: 12px 24px
border-bottom: 1px solid #e5e5e5
color: #212121
background: #fff
position: relative
&:before
bottom: 0
box-shadow: 0 -1px 0 #e5e5e5, 0 0 2px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24)
content: ''
display: block
left: 0
pointer-events: none
position: absolute
right: 0
top: 0
&:last-child
border-bottom: none
time
width: 132px
display: inline-block
text-align: right
flex-shrink: 0
.container
display: flex
.sender
width: 148px
display: inline-block
padding: 0 24px
font-weight: bold
flex-shrink: 0
.preview
.irc_highlight
background-color: rgba(251, 246, 167, 0.5)
.content
flex-shrink: 1
overflow: hidden
.irc_bold
font-weight: bold
.irc_italic
font-style: italic
.irc_underline
text-decoration: underline
[data-irc_foreground="0"]
color: #ffffff
[data-irc_foreground="1"]
color: #000000
[data-irc_foreground="2"]
color: #000080
[data-irc_foreground="3"]
color: #008000
[data-irc_foreground="4"]
color: #ff0000
[data-irc_foreground="5"]
color: #800000
[data-irc_foreground="6"]
color: #800080
[data-irc_foreground="7"]
color: #ffa500
[data-irc_foreground="8"]
color: #ffff00
[data-irc_foreground="9"]
color: #00ff00
[data-irc_foreground="10"]
color: #008080
[data-irc_foreground="11"]
color: #00ffff
[data-irc_foreground="12"]
color: #4169e1
[data-irc_foreground="13"]
color: #ff00ff
[data-irc_foreground="14"]
color: #808080
[data-irc_foreground="15"]
color: #c0c0c0
[data-irc_background="0"]
background-color: #ffffff
[data-irc_background="1"]
background-color: #000000
[data-irc_background="2"]
background-color: #000080
[data-irc_background="3"]
background-color: #008000
[data-irc_background="4"]
background-color: #ff0000
[data-irc_background="5"]
background-color: #800000
[data-irc_background="6"]
background-color: #800080
[data-irc_background="7"]
background-color: #ffa500
[data-irc_background="8"]
background-color: #ffff00
[data-irc_background="9"]
background-color: #00ff00
[data-irc_background="10"]
background-color: #008080
[data-irc_background="11"]
background-color: #00ffff
[data-irc_background="12"]
background-color: #4169e1
[data-irc_background="13"]
background-color: #ff00ff
[data-irc_background="14"]
background-color: #808080
[data-irc_background="15"]
background-color: #c0c0c0
@font-face
font-family: 'Roboto'
font-style: normal
font-weight: 400
src: local('Roboto'), local('Roboto-Regular'), url('../fonts/roboto-v15-latin-ext_cyrillic_greek-ext_cyrillic-ext_latin_greek_vietnamese-regular.woff2') format('woff2'), url('../fonts/roboto-v15-latin-ext_cyrillic_greek-ext_cyrillic-ext_latin_greek_vietnamese-regular.woff') format('woff')
@font-face
font-family: 'Roboto'
font-style: normal
font-weight: 700
src: local('Roboto Bold'), local('Roboto-Bold'), url('../fonts/roboto-v15-latin-ext_cyrillic_greek-ext_cyrillic-ext_latin_greek_vietnamese-700.woff2') format('woff2'), url('../fonts/roboto-v15-latin-ext_cyrillic_greek-ext_cyrillic-ext_latin_greek_vietnamese-700.woff') format('woff')
\ No newline at end of file
@font-face
font-family: 'Material Icons'
font-style: normal
font-weight: 400
src: local('Material Icons'), local('MaterialIcons-Regular'), url(../icons/MaterialIcons-Regular.woff2) format('woff2'), url(../icons/MaterialIcons-Regular.woff) format('woff')
.icon
font-family: 'Material Icons', sans-serif
font-weight: normal
font-style: normal
font-size: 24px
display: inline-block
width: 1em
height: 1em
line-height: 1
text-transform: none
letter-spacing: normal
word-wrap: normal
white-space: nowrap
direction: ltr
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale
/* Support for IE. */
font-feature-settings: 'liga'
\ No newline at end of file
File moved
@import "util"
.nav
position: fixed
left: 0
right: 0
top: 0
height: 56px
z-index: 2
.container
background: #0271B3
padding: 0 6rem
z-index: 1
position: absolute
top: 0
left: 0
right: 0
box-shadow: 0 -1px 0 #e0e0e0, 0 0 2px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24)
transition: background .15s
.searchBar
max-width: 1136px
margin: 10px auto
height: 36px
display: flex
position: relative
border: none
transition: background .15s
background: rgba(255, 255, 255, .15)
border-radius: 2px
padding: 0 0 0 72px
color: #ffffff
flex-direction: row
&:hover
background: rgba(255, 255, 255, .3)
.icon
display: inline-block
width: 72px
height: 36px
position: absolute
text-align: center
line-height: 36px
left: 0
top: 0
.search
display: inline-block
flex-grow: 1
flex-shrink: 1
background: none
border: none
line-height: 100%
color: #ffffff
font-size: 1rem
&::-moz-placeholder
color: #ffffff
opacity: 1
-moz-osx-font-smoothing: grayscale
&::-webkit-input-placeholder
color: #ffffff
opacity: 1
-webkit-font-smoothing: antialiased
.actions
position: absolute
height: 56px
z-index: 8
right: 0
display: flex
align-items: center
justify-content: flex-end
padding-left: 30px
padding-right: 30px
a
height: 30px
width: 30px
position: relative
padding: 3px
cursor: pointer
color: #fff
transition: all .15s
text-decoration: none
@include vendor-prefix('user-select', 'none')
&:hover:before
background-color: rgba(0, 0, 0, .12)
bottom: -4px
content: ' '
left: -4px
margin: auto
padding: 4px
position: absolute
right: -4px
top: -4px
z-index: -1
border-radius: 50%
.history
top: 100%
max-width: 1328px
margin: auto
padding: 0 6rem
transform: translateY(-200%)
transition: transform 400ms
position: relative
ul
list-style-type: none
margin: 0
padding: 6px 0
background: #fff
box-shadow: 0 -1px 0 #e0e0e0, 0 0 2px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24)
li
cursor: pointer
line-height: 36px
overflow: hidden
padding: 0 24px
text-overflow: ellipsis
white-space: nowrap
&:hover, &:focus, &.selected
background: rgba(0, 0, 0, 0.03)
.icon
border-radius: 12px
height: 24px
margin-right: 24px
vertical-align: middle
width: 24px
display: inline-block
background-size: cover
opacity: 0.6
p
cursor: default
line-height: 36px
overflow: hidden
padding: 0 24px
text-overflow: ellipsis
white-space: nowrap
font-style: italic
color: #646464
&.focus
.container
background: #f2f2f2
.searchBar
background: #ffffff
.search
color: #333333
&::-moz-placeholder
color: #757575
&::-webkit-input-placeholder
color: #757575
.history
transform: translateY(0)
.icon
color: #333333
&+.results
opacity: 0
\ No newline at end of file
......@@ -12,6 +12,7 @@ body {
}
section {
transition: opacity 400ms;
max-width: 1328px;
padding: 56px 6rem 8rem 6rem;
margin: 0 auto;
......@@ -19,14 +20,17 @@ section {
buffer {
display: block;
margin-top: 20px;
margin-top: 0;
margin-bottom: 20px;
border: rgba(0, 0, 0, 0);
transition: all 400ms;
}
buffer.selected {
background-color: #ddd;
border: rgba(0, 0, 0, .4);
padding: 20px 16px;
margin-top: 20px;
margin-left: -16px;
margin-right: -16px;
}
......@@ -56,10 +60,22 @@ message {
position: relative;
}
message.faded * {
message:not(.original) * {
opacity: .8
}
context:not(.selected) > .before, context:not(.selected) > .after {
display: none;
}
context:not(.selected) inline-button {
display: none;
}
buffer:not(.selected) context:nth-child(4)~context * {
display: none;
}
message sender {
width: 148px;
display: inline-block;
......
@font-face {
font-family: "Material Icons";
font-style: normal;
font-weight: 400;
src: local("Material Icons"), local("MaterialIcons-Regular"), url(../icons/MaterialIcons-Regular.woff2) format("woff2"), url(../icons/MaterialIcons-Regular.woff) format("woff"); }
.icon {
font-family: "Material Icons", sans-serif;
font-weight: normal;
font-style: normal;
font-size: 24px;
display: inline-block;
width: 1em;
height: 1em;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: "liga"; }
@font-face {
font-family: "Roboto";
font-style: normal;
font-weight: 400;
src: local("Roboto"), local("Roboto-Regular"), url("../fonts/roboto-v15-latin-ext_cyrillic_greek-ext_cyrillic-ext_latin_greek_vietnamese-regular.woff2") format("woff2"), url("../fonts/roboto-v15-latin-ext_cyrillic_greek-ext_cyrillic-ext_latin_greek_vietnamese-regular.woff") format("woff"); }
@font-face {
font-family: "Roboto";
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url("../fonts/roboto-v15-latin-ext_cyrillic_greek-ext_cyrillic-ext_latin_greek_vietnamese-700.woff2") format("woff2"), url("../fonts/roboto-v15-latin-ext_cyrillic_greek-ext_cyrillic-ext_latin_greek_vietnamese-700.woff") format("woff"); }
* {
padding: 0;
margin: 0;
box-sizing: border-box; }
body {
background: #F2F2F2;
font-family: "Roboto", sans-serif;
font-size: 81.25%; }
*:focus {
outline: none; }
.nav {
position: fixed;
left: 0;
right: 0;
top: 0;
height: 56px;
z-index: 2; }
.nav .container {
background: #0271B3;
padding: 0 6rem;
z-index: 1;
position: absolute;
top: 0;
left: 0;
right: 0;
box-shadow: 0 -1px 0 #e0e0e0, 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24);
transition: background 0.15s; }
.nav .container .searchBar {
max-width: 1136px;
margin: 10px auto;
height: 36px;
display: flex;
position: relative;
border: none;
transition: background 0.15s;
background: rgba(255, 255, 255, 0.15);
border-radius: 2px;
padding: 0 0 0 72px;
color: #ffffff;
flex-direction: row; }
.nav .container .searchBar:hover {
background: rgba(255, 255, 255, 0.3); }
.nav .container .searchBar .icon {
display: inline-block;
width: 72px;
height: 36px;
position: absolute;
text-align: center;
line-height: 36px;
left: 0;
top: 0; }
.nav .container .searchBar .search {
display: inline-block;
flex-grow: 1;
flex-shrink: 1;
background: none;
border: none;
line-height: 100%;
color: #ffffff;
font-size: 1rem; }
.nav .container .searchBar .search::-moz-placeholder {
color: #ffffff;
opacity: 1;
-moz-osx-font-smoothing: grayscale; }
.nav .container .searchBar .search::-webkit-input-placeholder {
color: #ffffff;
opacity: 1;
-webkit-font-smoothing: antialiased; }
.nav .actions {
position: absolute;
height: 56px;
z-index: 8;
right: 0;
display: flex;
align-items: center;
justify-content: flex-end;
padding-left: 30px;
padding-right: 30px; }
.nav .actions a {
height: 30px;
width: 30px;
position: relative;
padding: 3px;
cursor: pointer;
color: #fff;
transition: all 0.15s;
text-decoration: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none; }
.nav .actions a:hover:before {
background-color: rgba(0, 0, 0, 0.12);
bottom: -4px;
content: " ";
left: -4px;
margin: auto;
padding: 4px;
position: absolute;
right: -4px;
top: -4px;
z-index: -1;
border-radius: 50%; }
.nav .history {
top: 100%;
max-width: 1328px;
margin: auto;
padding: 0 6rem;
transform: translateY(-200%);
transition: transform 400ms;
position: relative; }
.nav .history ul {
list-style-type: none;
margin: 0;
padding: 6px 0;
background: #fff;
box-shadow: 0 -1px 0 #e0e0e0, 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24); }
.nav .history ul li {
cursor: pointer;
line-height: 36px;
overflow: hidden;
padding: 0 24px;
text-overflow: ellipsis;
white-space: nowrap; }
.nav .history ul li:hover, .nav .history ul li:focus, .nav .history ul li.selected {
background: rgba(0, 0, 0, 0.03); }
.nav .history ul li .icon {
border-radius: 12px;
height: 24px;
margin-right: 24px;
vertical-align: middle;
width: 24px;
display: inline-block;
background-size: cover;
opacity: 0.6; }
.nav .history ul p {
cursor: default;
line-height: 36px;
overflow: hidden;
padding: 0 24px;
text-overflow: ellipsis;
white-space: nowrap;
font-style: italic;
color: #646464; }
.nav.focus .container {
background: #f2f2f2; }
.nav.focus .container .searchBar {
background: #ffffff; }
.nav.focus .container .searchBar .search {
color: #333333; }
.nav.focus .container .searchBar .search::-moz-placeholder {
color: #757575; }
.nav.focus .container .searchBar .search::-webkit-input-placeholder {
color: #757575; }
.nav.focus .history {
transform: translateY(0); }
.nav.focus .icon {
color: #333333; }
.nav.focus + .results {
opacity: 0; }
.results {
max-width: 1328px;
padding: 56px 6rem 8rem 6rem;
margin: 0 auto;
transition: opacity 400ms; }
.results .buffer {
display: block;
margin-top: 0;
margin-bottom: 20px;
border: transparent;
transition: all 400ms; }
.results .buffer .title {
border-bottom: 1px solid transparent;
border-top: 1px solid transparent;
color: #616161;
margin-top: 20px;
padding-bottom: 10px;
padding-left: 22px;
position: relative;
will-change: transform, -webkit-transform; }
.results .buffer .inline-button {
display: block;
background: #f5f5f5;
font-size: 16px;
height: 48px;
line-height: 48px;
color: #717171;
text-align: center;
font-style: italic;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
position: relative; }
.results .buffer .inline-button:before {
bottom: 0;
box-shadow: 0 -1px 0 #e5e5e5, 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24);
content: "";
display: block;
left: 0;
pointer-events: none;
position: absolute;
right: 0;
top: 0; }
.results .buffer .container {
font-size: 13px; }
.results .buffer .container .context:not(.selected) .before, .results .buffer .container .context:not(.selected) .after {
display: none; }
.results .buffer .container .context:not(.selected) .inline-button {
display: none; }
.results .buffer .container .context .message {
display: flex;
line-height: 24px;
padding: 12px 24px;
border-bottom: 1px solid #e5e5e5;
color: #212121;
background: #fff;
position: relative; }
.results .buffer .container .context .message:before {
bottom: 0;
box-shadow: 0 -1px 0 #e5e5e5, 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24);
content: "";
display: block;
left: 0;
pointer-events: none;
position: absolute;
right: 0;
top: 0; }
.results .buffer .container .context .message:last-child {
border-bottom: none; }
.results .buffer .container .context .message time {
width: 132px;
display: inline-block;
text-align: right;
flex-shrink: 0; }
.results .buffer .container .context .message .container {
display: flex; }
.results .buffer .container .context .message .container .sender {
width: 148px;
display: inline-block;
padding: 0 24px;
font-weight: bold;
flex-shrink: 0; }
.results .buffer .container .context .message .container .preview .irc_highlight {
background-color: rgba(251, 246, 167, 0.5); }
.results .buffer .container .context .message .container .content {
flex-shrink: 1;
overflow: hidden; }
.results .buffer .container .context .message .container .content .irc_bold {
font-weight: bold; }
.results .buffer .container .context .message .container .content .irc_italic {
font-style: italic; }
.results .buffer .container .context .message .container .content .irc_underline {
text-decoration: underline; }
.results .buffer .container .context .message .container .content [data-irc_foreground="0"] {
color: #ffffff; }
.results .buffer .container .context .message .container .content [data-irc_foreground="1"] {
color: #000000; }
.results .buffer .container .context .message .container .content [data-irc_foreground="2"] {
color: #000080; }
.results .buffer .container .context .message .container .content [data-irc_foreground="3"] {
color: #008000; }
.results .buffer .container .context .message .container .content [data-irc_foreground="4"] {
color: #ff0000; }
.results .buffer .container .context .message .container .content [data-irc_foreground="5"] {
color: #800000; }
.results .buffer .container .context .message .container .content [data-irc_foreground="6"] {
color: #800080; }
.results .buffer .container .context .message .container .content [data-irc_foreground="7"] {
color: #ffa500; }
.results .buffer .container .context .message .container .content [data-irc_foreground="8"] {
color: #ffff00; }
.results .buffer .container .context .message .container .content [data-irc_foreground="9"] {
color: #00ff00; }
.results .buffer .container .context .message .container .content [data-irc_foreground="10"] {
color: #008080; }
.results .buffer .container .context .message .container .content [data-irc_foreground="11"] {
color: #00ffff; }
.results .buffer .container .context .message .container .content [data-irc_foreground="12"] {
color: #4169e1; }
.results .buffer .container .context .message .container .content [data-irc_foreground="13"] {
color: #ff00ff; }
.results .buffer .container .context .message .container .content [data-irc_foreground="14"] {
color: #808080; }
.results .buffer .container .context .message .container .content [data-irc_foreground="15"] {
color: #c0c0c0; }
.results .buffer .container .context .message .container .content [data-irc_background="0"] {
background-color: #ffffff; }
.results .buffer .container .context .message .container .content [data-irc_background="1"] {
background-color: #000000; }
.results .buffer .container .context .message .container .content [data-irc_background="2"] {
background-color: #000080; }
.results .buffer .container .context .message .container .content [data-irc_background="3"] {
background-color: #008000; }
.results .buffer .container .context .message .container .content [data-irc_background="4"] {
background-color: #ff0000; }
.results .buffer .container .context .message .container .content [data-irc_background="5"] {
background-color: #800000; }
.results .buffer .container .context .message .container .content [data-irc_background="6"] {
background-color: #800080; }
.results .buffer .container .context .message .container .content [data-irc_background="7"] {
background-color: #ffa500; }
.results .buffer .container .context .message .container .content [data-irc_background="8"] {
background-color: #ffff00; }
.results .buffer .container .context .message .container .content [data-irc_background="9"] {
background-color: #00ff00; }
.results .buffer .container .context .message .container .content [data-irc_background="10"] {
background-color: #008080; }
.results .buffer .container .context .message .container .content [data-irc_background="11"] {
background-color: #00ffff; }
.results .buffer .container .context .message .container .content [data-irc_background="12"] {
background-color: #4169e1; }
.results .buffer .container .context .message .container .content [data-irc_background="13"] {
background-color: #ff00ff; }
.results .buffer .container .context .message .container .content [data-irc_background="14"] {
background-color: #808080; }
.results .buffer .container .context .message .container .content [data-irc_background="15"] {
background-color: #c0c0c0; }
/*# sourceMappingURL=search.css.map */
{
"version": 3,
"mappings": "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",
"sources": ["icons.sass","font.sass","search.sass","nav.sass","util.sass","content.sass"],
"names": [],
"file": "search.css"
}
\ No newline at end of file
@import "util"
@import "icons"
@import "font"
*
padding: 0
margin: 0
box-sizing: border-box
body
background: #F2F2F2
font-family: 'Roboto', sans-serif
font-size: 81.25%
*:focus
outline: none
@import "nav"
@import "content"
\ No newline at end of file
@mixin vendor-prefix($name, $value)
@each $vendor in ('-webkit-', '-moz-', '-ms-', '-o-', '')
#{$vendor}#{$name}: #{$value}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment