X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=app.scss;h=51110e1d239a43fbd66fe528ecec9e8ecbb2ed26;hb=c92844bd0ed19747d0f06701475adbf73a3ab0e1;hp=ab9a394155353c46ad225797118892a4fbd6c184;hpb=4877ec98e668b1741d7a2a4d3e4a177ec495db39;p=github%2Fbastienwirtz%2Fhomer.git diff --git a/app.scss b/app.scss index ab9a394..51110e1 100644 --- a/app.scss +++ b/app.scss @@ -1,12 +1,125 @@ $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"); + } + } + + .message { + background-color: map-get($theme, "card-background"); + .message-body { + color: map-get($theme, "text"); + } + } + + .footer { + background-color: map-get($theme, "card-background"); + box-shadow: 0 2px 15px 0 map-get($theme, "card-shadow"); + } +} + + +@mixin ellipsis() { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + + +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; @@ -77,36 +190,40 @@ body { } } } - .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 { border-bottom: 1px dashed #ccc; padding-bottom: 10px; + @include ellipsis(); } .title { font-size: 1.1em; + @include ellipsis(); } .subtitle { font-size: .9em; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + @include ellipsis(); } .container { @@ -128,7 +245,8 @@ body { } .media-content { - overflow: inherit; + overflow: hidden; + text-overflow: inherit; } .tag { @@ -141,6 +259,10 @@ body { overflow: hidden; transition: all 0.2s ease-out; padding: 0; + + .tag-text { + display: none; + } } .card { @@ -155,13 +277,16 @@ body { } .card:hover { - background-color: #FFFFFF; transform: translate(0, -3px); .tag { width: auto; color: #ffffff; padding: 0 0.75em; + + .tag-text { + display: block; + } } } @@ -191,10 +316,19 @@ body { 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 { @@ -205,7 +339,7 @@ body { 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; @@ -220,13 +354,15 @@ body { } .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 { @@ -236,6 +372,7 @@ body { .icon-button { display: inline-block; + padding: 0 12px; } .offline-message {