$primary-color: #3367d6;
$secondary-color: #4285f4;
-html { height: 100%; }
+
+// /!\ Keep background colors sync with `theme-color` meta info
+$theme-light: (
+ background: #f5f5f5,
+ card-background: #ffffff,
+ text: #363636,
+ text-title: #303030,
+ text-subtitle: #424242,
+ card-shadow: rgba(0, 0, 0, 0.1),
+ a-hover: #363636
+);
+$theme-dark: (
+ background: #131313,
+ card-background: #2b2b2b,
+ text: #eaeaea,
+ text-title: #fafafa,
+ text-subtitle: #f5f5f5,
+ card-shadow: rgba(0, 0, 0, 0.4),
+ a-hover: #ffdd57
+);
+
+/* raleway-regular - latin */
+@font-face {
+ font-family: 'Raleway';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: local('Raleway'), local('Raleway-Regular'),
+ url('./webfonts/raleway/raleway-v14-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('./webfonts/raleway/raleway-v14-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+
+/* lato-regular - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: local('Lato Regular'), local('Lato-Regular'),
+ url('./webfonts/lato/lato-v16-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('./webfonts/lato/lato-v16-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+
+@mixin theme($theme) {
+ background-color: map-get($theme, "background");
+ color: map-get($theme, "text");
+ a {
+ &:hover {
+ color: map-get($theme, "a-hover");
+ }
+ }
+
+ .title {
+ color: map-get($theme, "text-title");
+ }
+ .subtitle {
+ color: map-get($theme, "text-subtitle");
+ }
+
+ .card {
+ background-color: map-get($theme, "card-background");
+ box-shadow: 0 2px 15px 0 map-get($theme, "card-shadow");
+ &:hover {
+ background-color: map-get($theme, "card-background");
+ }
+ }
+
+ .footer {
+ background-color: map-get($theme, "card-background");
+ box-shadow: 0 2px 15px 0 map-get($theme, "card-shadow");
+ }
+}
+
+html {
+ height: 100%;
+}
body {
font-family: 'Raleway', sans-serif;
- background-color: #F5F5F5;
- min-height: 100%;
+ height: 100%;
+
+ #app {
+ min-height: 100%;
+ transition: background-color cubic-bezier(0.165, 0.84, 0.44, 1) 300ms;
+
+ // Default theme
+ @include theme($theme-light);
+
+ // System pref theme
+ @media (prefers-color-scheme: light), (prefers-color-scheme: no-preference) {
+ @include theme($theme-light);
+ }
+ @media (prefers-color-scheme: dark) {
+ @include theme($theme-dark);
+ }
+
+ // User override theme
+ &.is-light {
+ @include theme($theme-light);
+ }
+ &.is-dark {
+ @include theme($theme-dark);
+ }
+ }
h1, h2, h3, h4, h5, h6 {
font-family: 'Lato', sans-serif;
}
}
}
- .navbar {
+ .navbar, .navbar-menu {
background-color: $secondary-color;
a {
color: #ffffff;
- &:hover {
+ &:hover, &:focus {
+ color: #ffffff;
background-color: lighten( $secondary-color, 5% );
}
}
}
+ .navbar-end {
+ text-align: right;
+ }
}
#main-section {
- margin-bottom: 3rem;
+ margin-bottom: 2rem;
padding: 0;
h2 {
overflow: hidden;
transition: all 0.2s ease-out;
padding: 0;
+
+ .tag-text {
+ display: none;
+ }
}
.card {
}
.card:hover {
- background-color: #FFFFFF;
transform: translate(0, -3px);
.tag {
width: auto;
color: #ffffff;
padding: 0 0.75em;
+
+ .tag-text {
+ display: block;
+ }
}
}
bottom: 0;
padding: 0.5rem;
text-align: left;
- background-color: #fafafa;
- border-top: 1px solid #F5F5F5;
color: #676767;
font-size: 0.85rem;
+ transition: background-color cubic-bezier(0.165, 0.84, 0.44, 1) 300ms;
+ }
+
+ .no-footer {
+ #main-section {
+ margin-bottom: 0;
+ }
+
+ .footer {
+ display: none;
+ }
}
.search-bar {
background-color: lighten( $secondary-color, 6% );
border-radius: 5px;
padding: 2px 12px 2px 30px;
- margin: 10px 0;
+ margin: 0 0 0 12px;
transition: all 100ms linear;
color: #ffffff;
height: 30px;
}
.search-label::before {
- font-family: 'FontAwesome';
+ font-family: 'Font Awesome 5 Free';
position: absolute;
- top: 12px;
- left: 8px;
+ top: 4px;
+ left: 16px;
content: "\f002";
+ font-weight: 900;
width: 20px;
height: 20px;
+ color: #ffffff;
}
&:focus-within .search-label::before {
.icon-button {
display: inline-block;
+ padding: 0 12px;
}
.offline-message {