]> jfr.im git - irc/freenode/web-7.0.git/blobdiff - static/css/style.css
Merge pull request #116 from tinyhippw/tinyhippo-whitespace
[irc/freenode/web-7.0.git] / static / css / style.css
index a7108ecd325587cc7e927c680919a844ba165c02..3893d8543d62f2a95b54ffdeb7b98de388739e82 100644 (file)
@@ -1,19 +1,44 @@
 /* vars */
 :root {
-    --navbar-bg: #292f2f;
-    --jumbotron-bg: #3a4346;
-    --copyright-bg: #292f2f;
-    --link-color: 66,139,202;
-    --footer-link-color: #ddd;
-    --nlink-col: #000;
-    --text-color: #333;
-    --footer-text-color: #eee;
-    --copyright-text-color: #ccc;
-    --jumbotron-text-color: #eee;
-    --border-color: #292f2f;
-    --box-hover-color: #ddd;
-    --box-round: 10px;
-}
+    --c-dark:     #292f2f;
+    --c-bg-dark:  #3a4346;
+    --c-bg-light: #4c5456;
+    --c-light:    #ecf7fa;
+    --c-hl-dark:  #008499;
+    --c-hl-light: #3baec4;
+
+    /* backgrounds */
+    --navbar-bg:    var(--c-dark);
+    --jumbotron-bg: var(--c-bg-dark);
+    --copyright-bg: var(--c-dark);
+
+    /* link colors */
+    --link-color:         var(--c-hl-dark);
+    --link-hover-color:   var(--c-hl-light);
+    --footer-link-color:  var(--c-light);
+    --footer-hover-color: #fff;
+
+    /* text colors */
+    --text-color:           var(--c-dark);
+    --footer-text-color:    var(--c-light);
+    --copyright-text-color: var(--c-light);
+    --jumbotron-text-color: var(--c-light);
+    --art-date-color:       color(var(--c-dark) tint(50%));
+
+    /* box colors */
+    --border-color:    var(--c-dark);
+    --box-color:       var(--c-bg-light);
+    --box-hover-color: var(--c-dark);;
+    --box-round:       10px;
+
+    /* other */
+    --max-width:     1200px;
+    --max-width-box: 800px;
+    --margin-box-fa: 5px;
+}
+@custom-media --max-sm all and (max-width: 600px);
+@custom-media --max-md all and (max-width: 800px);
+@custom-media --max-rem all and (max-width: 60rem);
 
 /* reset css for browser compat */
 * {
@@ -25,6 +50,8 @@
 /* global */
 body {
     font-family: 'Open Sans';
+    font-feature-settings: "lnum";
+    font-variant-numeric: lining-nums;
     color: var(--text-color);
     font-size: 14px;
     min-height: 100vh;
@@ -32,10 +59,17 @@ body {
 }
 
 a {
-    color: rgb(var(--link-color));
+    color: var(--link-color);
     text-decoration: none;
 }
 
+a:hover {
+    color: var(--link-hover-color);
+}
+img {
+    max-width: 100%;
+}
+
 /* navbar */
 .navbar {
     width: 100%;
@@ -52,77 +86,121 @@ a {
     align-items: center;
     border-bottom: 1px solid var(--border-color);
     z-index: 100;
+    padding-right: 5px;
 }
 
-@media all and (max-width: 600px) {
+@media (--max-sm); {
     .navbar {
         position: absolute;
     }
 }
 
 .navbar a {
+    margin-top: 2px;
     height: 40px;
 }
 
-a.nav-light {
-    background-color: #eee;
-    height: 44px;
-    padding: 2px;
-    margin-right: 3px;
-}
-
 .nlogo {
     height: 40px;
 }
 
-.navlinks {
-    display: flex;
-    justify-content: space-around;
-    flex-wrap: nowrap;
-}
-
-.nlink {
-    text-decoration: none;
-    color: var(--nlink-col);
+.tlogo {
+    height: 40px;
+    margin-bottom: -9px;
+    margin-left: -10px;
+    margin-right: -10px;
 }
 
 /* main */
 .container {
-    padding: 50px 0 0;
     width: 100%;
-    min-height: 98vh;
-    padding-bottom: 11.5rem;
+    min-height: 100vh;
+    padding-top: 50px;
+    padding-bottom: 12.5rem;
 }
 
 .main {
-    margin: 0 .5em;
-    margin-top: 1em;
+    margin: 2em auto;
+    padding: 0 .75em;
+    max-width: var(--max-width);
+    line-height: 1.8;
 }
 
 .main h1,
 .main h2,
 .main h3,
-.main p + p {
-    margin-top: .5em;
+.main h4,
+.main li,
+.main pre,
+.main p {
+    margin-top: .7em;
+}
+
+.main h1 + p,
+.main h2 + p,
+.main h3 + p,
+.main h3 + p {
+    margin-top: 0;
+}
+
+ul {
+    padding-left: 2em;
+    list-style-type: disc;
+}
+
+ol {
+    padding-left: 2em;
+    list-style-type: decimal;
+}
+
+hr {
+    margin-top: .8em;
+    margin-bottom: .8em;
 }
 
 /* jumbotron */
 .jumbotron {
     position: relative;
     width: 100%;
-    margin-top: -16px;
-    background: #000;
+    margin-top: -50px;
     background: var(--jumbotron-bg);
     box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
     color: var(--jumbotron-text-color);
-    padding: 2em 0;
+    padding: 4em 0 4em 0;
+}
+
+.jindex {
+    z-index: 99;
+}
+
+.jlogo {
+    display: block;
+    margin: 25px auto;
+}
+
+.jpia {
+    position: absolute;
+    height: 40px;
+    right: 0; 
+    top: 0;
+    margin: 25px;
+}
+
+@media (--max-sm) {
+    .jlogo {
+        margin: 2em auto -2em auto;
+    }
+    .jumbotron {
+        padding-bottom: 2em;
+    }
 }
 
 .child {
     text-align: center;
-    margin: .5em;
+    margin: .5em auto;
     font-size: 32px;
     line-height: 48px;
+    max-width: 75%;
 }
 
 .box-container {
@@ -130,211 +208,247 @@ a.nav-light {
     flex-wrap: wrap;
     justify-content: space-around;
     align-items: stretch;
-    max-width: 800px;
+    max-width: var(--max-width-box);
     margin: 0 auto;
 }
 
 .box {
     text-align: center;
     text-decoration: none;
-    color: var(--text-color);
+    color: var(--jumbotron-text-color);
     margin-bottom: 5px;
-    padding: 5px;
     flex-basis: 30%;
-    background-color: #fff;
+    min-width: 26%;
+    background-color: var(--box-color);
     border-radius: var(--box-round);
-    -webkit-border-radius: var(--box-round);
-    -moz-border-radius: var(--box-round);
-}
-
-.box span {
-    display: block;
+    padding: 1em;
 }
 
 .box:hover,.box:active {
+    color: var(--jumbotron-text-color);
     background-color: var(--box-hover-color);
 }
 
-.box div{
-    font-size: 28px;
-    line-height: 28px;
-    padding-left: 8px;
-    font-weight: 700;
+.box span {
     position: relative;
-    display: inline;
-    top: -10px;
+    top: initial;
+    font-size: 20px;
+    font-weight: 600;
+    line-height: 16px;
+    display: block;
+    margin-top: .75em;
 }
 
 .fa-users {
-    margin-top: 5px;
-}
-
-.fa-comment,.fa-question {
-    margin-bottom: 5px;
+    margin-top: var(--margin-box-fa);
 }
 
-.fa-4x {
-    padding-left: 8px;
+.fa-comments,.fa-question {
+    margin-bottom: var(--margin-box-fa);
 }
 
 .title {
     text-align: center;
 }
 
-/* articles feed */
-h1 {
-    margin: 0;
+@media (--max-md) {
+    .box {
+        text-align: center;
+    }
+
+    .child {
+        font-size: 20px;
+        line-height: 30px;
+        padding: 10px 0 5px;
+    }
+
+    .fa-4x {
+        padding: 0;
+        margin: 0;
+        width: 60px;
+        text-align: center;
+        font-size: 28px;
+    }
+
+    .box-container {
+        flex-direction: column;
+        margin: 0 .5em;
+    }
+
+    .box span {
+        font-size: 22px;
+        line-height: 22px;
+        padding-left: 8px;
+        font-weight: bold;
+        position: relative;
+        display: inline-block;
+        text-align: center;
+        margin-top: 0;
+    }
+
+    .box {
+        text-align: left;
+        border-radius: calc(var(--box-round) / 2);
+        margin: 5px 0;
+    }
 }
 
-div.art {
-    clear: right;
-    min-height: 2em;
-    flex-grow: 1;
+/* articles */
+h1 {
+    margin: 0;
 }
 
-div.artlist {
+.art-info {
+    margin-top: 2.1em;
     display: flex;
+    flex-direction: row;
     flex-wrap: wrap;
-    justify-content: flex-start;
-    align-items: stretch;
-    margin-top: .5em;
+    justify-content: space-between;
+    align-items: baseline;
 }
 
-@media all and (min-width: 800px) {
-    div.artlist {
-        max-width: 50%;
-        margin-right: auto;
-        margin-left: auto;
-    }
+.art-info h1 {
+    margin-top: 0;
+    display: inline;
+    margin-right: 2em;
 }
 
-div.art:not(:first-child) {
-    border-top: 1px solid var(--border-color);
+.art-body {
+    margin-bottom: 1em;
 }
 
-b.art {
-    margin-bottom: 0;
-    font-size: 18px;
+.artlist {
+    max-width: var(--max-width);
+    margin: 0 auto;
+    margin-top: .5em;
 }
 
-p.art {
-    margin: 0;
+.artlist.heading {
+    margin: 8em auto 2em auto;
+    padding: 0 0.75em;
 }
 
-p.art-ingress {
-    font-style: italic;
-    margin: 0;
+.artlist .art-info:not(:first-child) {
+    border-top: 1px solid var(--border-color);
 }
 
 .art-date {
-    float: right;
-    color: #ccc;
-    margin: 0 .5em;
-}
-
-p.heading {
+    display: inline-block;
+    vertical-align: baseline;
+    line-height: 1;
     white-space: nowrap;
+    color: var(--art-date-color);
+    font-feature-settings: "tnum";
+    font-variant-numeric: tabular-nums;
 }
 
-p.art-link {
-    margin-top: 0;
+.art-nav {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    width: 100%;
 }
 
-/* Article */
-.art-full h1,
-.art-full h2,
-.art-full h3,
-.art-full h4 {}
+@media (--max-md) {
+    .main.artlist {
+        padding-left: 0;
+        padding-right: 0;
+    }
+
+    .artlist .art-info {
+        padding: 0 .75em;
+    }
+}
 
-/* help */
-.hmain {
+/* faq */
+.kb-index {
+    list-style-type: none;
+    padding-left: 0;
     display: flex;
+    flex-direction: row;
     flex-wrap: wrap;
-    justify-content: space-around;
-    align-items: stretch;
+    justify-content: stretch;
 }
 
-a.hchild {
-    color: var(--text-color);
-/*height: 40px;*/
-    width: 95%;
-    text-align: center;
-    border-top: 1px solid var(--border-color);
-    border-left: 1px solid var(--border-color);
-    border-right: 1px solid var(--border-color);
+.kb-index li {
+    display: block;
+    flex: 1 1 15em;
+    height: 7em;
+    margin: 1em;
 }
 
-a.hchild:hover,a.hchild:active {
-    background-color: var(--box-hover-color);
+.kb-index li h2 {
+    margin-top: 0;
 }
 
-.hchild:first-child {
-    margin-top: 10px;
-    -webkit-border-top-left-radius: var(--box-round);
-    -webkit-border-top-right-radius: var(--box-round);
-    -moz-border-radius-topleft: var(--box-round);
-    -moz-border-radius-topright: var(--box-round);
-    border-top-left-radius: var(--box-round);
-    border-top-right-radius: var(--box-round);
+.kb-index a {
+    display: block;
+    color: var(--text-color);
+    width: 100%;
+    height: 100%;
 }
-
-.hchild:last-child {
-    margin-bottom: 10px;
-    border-bottom: 1px solid var(--border-color);
-    -webkit-border-bottom-right-radius: var(--box-round);
-    -webkit-border-bottom-left-radius: var(--box-round);
-    -moz-border-radius-bottomright: var(--box-round);
-    -moz-border-radius-bottomleft: var(--box-round);
-    border-bottom-right-radius: var(--box-round);
-    border-bottom-left-radius: var(--box-round);
+.kb-index a h2 {
+    color: var(--link-color);
+}
+.kb-index a:hover h2 {
+    color: var(--link-hover-color);
 }
 
 /* footer */
 .footers {
     /*min-height: 30vh;*/
-    margin-top: -11rem;
-    min-height: 11rem;
+    margin-top: -12rem;
+    min-height: 12rem;
 }
 
 .footer {
     background: var(--jumbotron-bg);
     color: var(--footer-text-color);
-    margin-top: 2vh;
+    width: 100%;
+    box-shadow: 0 -3px 5px rgba(150,150,150,.36);
+    min-height: 10.5rem;
+    padding: 3em 0;
+}
+
+.footer-container {
     display: flex;
     flex-wrap: wrap;
-    justify-content: space-between;
+    justify-content: center;
     align-items: flex-start;
-    box-shadow: 0 -3px 5px rgba(150,150,150,.36);
-    min-height: 9.5rem;
+    margin: 0 auto;
 }
 
 .footerchild {
+    margin: 0 2em;
     margin-top: .5em;
-    flex: 1 1 1px;
-    min-width: 12rem;
+    flex-grow: 1;
+    flex-shrink: 0;
 }
 
 .footerchild:last-child {
-    margin-bottom: 1em;
+    margin-bottom: .5em;
 }
 
-@media all and (max-width: 60rem) {
-    .footer-push {
-        margin-left: auto;
-        width: max-content;
-    }
+.footer-push {
+    margin-left: auto;
+    width: max-content;
 }
 
-.footer a {
+footer a {
     color: var(--footer-link-color);
 }
 
+footer a:hover {
+    color: var(--footer-hover-color);
+}
+
 .footer h2 {
     margin-bottom: .1em;
     display: inline-block;
 }
 
-.footerchild ul,.footerchild ul ul {
+.footerchild ul, .footerchild ul ul {
+    padding-left: 0;
     margin-left: 10px;
     margin-right: 10px;
     list-style-type: none;
@@ -344,92 +458,90 @@ a.hchild:hover,a.hchild:active {
     padding-left: 30px;
 }
 
-@media all and (max-width: 600px) {
-    .footer {
+@media (--max-sm) {
+    .footer-container {
         flex-direction: column;
     }
 
-    .footerchild {
-        width: 100%;
-    }
-
     .footer-push {
         margin-left: 0;
+        width: 100%;
     }
 
     .footerchild ul li:last-child {
         margin-bottom: .5em;
     }
 
+    .footer-push ul li:last-child {
+        margin-bottom: .1em;
+    }
+
     .hdn {
         display: none;
     }
-
-    .box {
+    .footer {
+        padding: .5em 0;
+    }
+    .footer-push ul {
+        display: flex;
+        flex-wrap: wrap;
+        flex-direction: row;
+        justify-content: space-between;
+        align-items: flex-start;
         text-align: center;
     }
-
-    .child {
-        font-size: 20px;
-        line-height: 30px;
-        padding: 10px 0 5px;
+    .footer-push ul li {
+        display: inline-block;
+        font-size: 12vw;
     }
-
-    .fa-4x {
-        padding: 0;
-        margin: 0;
-    }
-
-    .box-container {
-        flex-direction: column;
-        margin: 0 .5em;
-    }
-
-    .box div {
-        position: relative;
-        top: initial;
-        font-size: 16px;
-        font-weight: normal;
-        line-height: 16px;
-        padding: 10px 0;
-        display: block;
+    .footer-push ul li img {
+        height: 12vw;
     }
 }
 
-.footer h2,.footer h3 {
+.footer h2, .footer h3 {
     margin-left: 10px;
     margin-right: 10px;
 }
 
-.copyright {
+footer.copyright {
     display: flex;
     flex-wrap: wrap;
     justify-content: space-between;
-    align-items: center;
     background: var(--copyright-bg);
     min-height: 1.5rem;
     color: var(--copyright-text-color);
+    padding-left: .5em;
+    padding-right: .5em;
+    overflow: hidden;
 }
 
-a.copyright {
-    background: var(--copyright-bg);
-    margin-bottom: 0;
-    margin-top: 0;
-    margin-left: .5em;
-    margin-right: .5em;
-    width: auto;
-    height: auto;
+footer.copyright div {
+    display: flex;
+    align-items: center;
+    height: 1.5rem;
+    line-height: 1.5rem;
+    vertical-align: top;
 }
 
-.copyright a img {
+.copyright * {
+    margin: 0;
     height: 1.5rem;
-    width: auto;
+    line-height: 1.5rem;
 }
 
-.copyright p {
-    margin-bottom: 0;
-    margin-top: 0;
-    margin-left: .5em;
+.copyright .fa {
+    height: 100%;
+    vertical-align: top;
+    font-size: 1.4em;
+}
+
+.copyright .footer-link {
+    height: 28px;
     margin-right: .5em;
-    text-align: right;
+}
+
+.copyright img {
+    height: 1.5rem;
+    width: auto;
 }