X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=app.scss;h=a0b1d42dcdfaec20d08d1c855412fb7f5e105407;hb=b4de52de8977f21fef7468c1a9c706b33c1b2dd5;hp=da6271d63822d960574b0ce5f6061335f1e2ab88;hpb=9baec9aec294656fb632123906b4ac6a712267ba;p=github%2Fbastienwirtz%2Fhomer.git diff --git a/app.scss b/app.scss index da6271d..a0b1d42 100644 --- a/app.scss +++ b/app.scss @@ -1,12 +1,110 @@ $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; @@ -18,7 +116,7 @@ body { h2 { font-size: 1.7rem; - margin-top: 3rem; + margin-top: 2rem; margin-bottom: 1rem; .fas, .fab, .far { @@ -82,7 +180,8 @@ body { a { color: #ffffff; - &:hover { + &:hover, &:focus { + color: #ffffff; background-color: lighten( $secondary-color, 5% ); } } @@ -90,7 +189,7 @@ body { } #main-section { - margin-bottom: 3rem; + margin-bottom: 2rem; padding: 0; h2 { @@ -141,23 +240,34 @@ body { overflow: hidden; transition: all 0.2s ease-out; padding: 0; + + .tag-text { + display: none; + } } .card { border-radius: 5px; border: none; box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); - transition: cubic-bezier(0.165, 0.84, 0.44, 1) 300ms + transition: cubic-bezier(0.165, 0.84, 0.44, 1) 300ms; + + a { + outline: none; + } } .card:hover { - background-color: #FFFFFF; transform: translate(0, -3px); .tag { width: auto; color: #ffffff; padding: 0 0.75em; + + .tag-text { + display: block; + } } } @@ -166,19 +276,45 @@ body { padding: 1.3rem; } + .layout-vertical { + .card { + border-radius: 0; + } + + .column div:first-of-type .card { + border-radius: 5px 5px 0 0; + } + + .column div:last-child .card { + border-radius: 0 0 5px 5px; + } + } + .footer { position: fixed; left: 0; right: 0; bottom: 0; - padding: 1rem 0.5rem; + 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 { position: relative; + display: inline-block; #search { border: none; background-color: lighten( $secondary-color, 6% ); @@ -199,11 +335,12 @@ body { } .search-label::before { - font-family: 'FontAwesome'; + font-family: 'Font Awesome 5 Free'; position: absolute; top: 12px; left: 8px; content: "\f002"; + font-weight: 900; width: 20px; height: 20px; } @@ -213,6 +350,10 @@ body { } } + .icon-button { + display: inline-block; + } + .offline-message { text-align: center; margin: 35px 0;