diff --git a/bb/brut/main.clj b/bb/brut/main.clj index 009bfb8..a11ba7f 100644 --- a/bb/brut/main.clj +++ b/bb/brut/main.clj @@ -91,8 +91,77 @@ [:a.btn.warn.huge {:href (to "brut.min.css")} "Download BRUT"]])) +(defn to-pre [hc] + (h/html {:escape-strings? true} + [:pre (-> (str (h/html hc)) + (string/replace #"><" ">\n<"))])) + (defn mk-docs [rel-pref _metas] (let [to (fn [path] (str rel-pref path)) + txt + [:div {:id "textual"} + [:h1 "title in h1"] + [:p "Some text in

with different styles; " + [:b "bold"] + ", " [:strong "strong"] + ", " [:i "italic"] + ", " [:em "emphasis"] + ", " [:code "code"] + ", and if you really want something to be extremly visible use the class " [:code.hl "hl"] "." + ] + [:p "The text should be " [:strong.hl "very dense"] " on purpose." + " Forget your lessons about nice space in design here." + " The goal of this design is to produce " [:em "professional"] " UI applications." + " So no time to make it breathes." + " We want to make it compact and efficient."] + [:p "Not we still try to keep a coherent and nice vertical rythm."] + [:p "Remark if you need to present a long text to read you can still use the class " [:code "doc"] "." + " Take a look at the next paragraph for example: "] + [:blockquote.doc + "Lorem ipsum with pretty Lorem ipsum dolor sit amet consectetur adipiscing elit, urna consequat felis +vehicula class ultricies mollis dictumst, aenean non a in donec nulla. +Phasellus ante pellentesque erat cum risus consequat imperdiet aliquam, integer +placerat et turpis mi eros nec lobortis taciti, vehicula nisl litora tellus +ligula porttitor metus. + +Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit, +euismod libero facilisi aptent elementum felis blandit cursus gravida sociis +erat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est ad. +Massa curae fringilla porttitor quam sollicitudin iaculis aptent leo ligula +euismod dictumst, orci penatibus mauris eros etiam praesent erat volutpat +posuere hac. +Metus fringilla nec ullamcorper odio aliquam lacinia conubia mauris tempor, +etiam ultricies proin quisque lectus sociis id tristique, integer phasellus +taciti pretium adipiscing tortor sagittis ligula. + +Mollis pretium lorem primis senectus habitasse lectus scelerisque donec, +ultricies tortor suspendisse adipiscing fusce morbi volutpat pellentesque, +consectetur mi risus molestie curae malesuada cum. +Dignissim lacus convallis massa mauris enim ad mattis magnis senectus montes, +mollis taciti phasellus accumsan bibendum semper blandit suspendisse faucibus +nibh est, metus lobortis morbi cras magna vivamus per risus fermentum. +Dapibus imperdiet praesent magnis ridiculus congue gravida curabitur dictum +sagittis, enim et magna sit inceptos sodales parturient pharetra mollis, aenean +vel nostra tellus commodo pretium sapien sociosqu."] + [:p "The " [:code "doc"] " class ensure the width of the text is not too wide and use a very legible font."] + [:blockquote + "Some blockquote"] + [:h2 "itemization"] + [:h3 "ul"] + [:ul + [:li "item 1"] + [:li "item 2"] + [:li "item 3; with a very long text that should wrap to the next line in any browser." + " We'll see that the wrapped text should be aligned with the text of the other items." + " This is due to the " [:code "list-style-position: outside"] "." + ] + [:li "item 4"]] + [:h3 "ol"] + [:ol + [:li "item 1"] + [:li "item 2"] + [:li "item 3"] + [:li "item 4"]]] images [:div {:id "images"} [:h1 "Images"] [:h2 "Inside a grid"] @@ -106,11 +175,6 @@ [:div.block [:p "In a block"] [:img {:src (to brutalism-img)}]]]] - pre-img (h/html {:escape-strings? true} - [:pre (-> (str (h/html images)) - (string/replace #"><" ">\n<") - )]) - img-block (conj images pre-img) docs [:div [:h1 "Buttons"] [:h2 "Text Buttons"] @@ -324,39 +388,39 @@ [:pre "<i class="ico">Copy and paste icons from above here!</i>"] [:h1 "Grids"] [:div {:class "row"} - [:div {:class "dark c12"} "c12"]] + [:div {:class "bg-neutral c12"} "c12"]] [:div {:class "row"} - [:div {:class "dark c11"} "c11"] + [:div {:class "bg-neutral c11"} "c11"] [:div {:class "light c1"} "c1"]] [:div {:class "row"} - [:div {:class "dark c10"} "c10"] + [:div {:class "bg-neutral c10"} "c10"] [:div {:class "light c2"} "c2"]] [:div {:class "row"} - [:div {:class "dark c9"} "c9"] + [:div {:class "bg-neutral c9"} "c9"] [:div {:class "light c3"} "c3"]] [:div {:class "row"} - [:div {:class "dark c8"} "c8"] + [:div {:class "bg-neutral c8"} "c8"] [:div {:class "light c4"} "c4"]] [:div {:class "row"} - [:div {:class "dark c7"} "c7"] + [:div {:class "bg-neutral c7"} "c7"] [:div {:class "light c5"} "c5"]] [:div {:class "row"} - [:div {:class "dark c6"} "c6"] + [:div {:class "bg-neutral c6"} "c6"] [:div {:class "light c6"} "c6"]] [:div {:class "row"} - [:div {:class "dark c5"} "c5"] + [:div {:class "bg-neutral c5"} "c5"] [:div {:class "light c7"} "c7"]] [:div {:class "row"} - [:div {:class "dark c4"} "c4"] + [:div {:class "bg-neutral c4"} "c4"] [:div {:class "light c8"} "c8"]] [:div {:class "row"} - [:div {:class "dark c3"} "c3"] + [:div {:class "bg-neutral c3"} "c3"] [:div {:class "light c9"} "c9"]] [:div {:class "row"} - [:div {:class "dark c2"} "c2"] + [:div {:class "bg-neutral c2"} "c2"] [:div {:class "light c10"} "c10"]] [:div {:class "row"} - [:div {:class "dark c1"} "c1"] + [:div {:class "bg-neutral c1"} "c1"] [:div {:class "light c11"} "c11"]] [:div {:class "row"} [:div {:class "light c12"} "c12"]] @@ -387,12 +451,10 @@ [:h5 {:class "tight"} "h5 tight"] [:h6 {:class "tight"} "h6 tight"] [:br] - [:pre "<h1>Level One Heading</h1>"]]] - ] + [:pre "<h1>Level One Heading</h1>"]]]] [:div.container - img-block - docs - ])) + (for [b [txt images docs]] + (conj b (to-pre b)))])) (defn -main [& _args] (gen-page "index.html" diff --git a/brut-nocolors.min.css b/brut-nocolors.min.css index 9855c10..b7b72d1 100644 --- a/brut-nocolors.min.css +++ b/brut-nocolors.min.css @@ -1 +1 @@ -:root{--bg:#fff;--fg:#000;--bg2:#eee;--darken:rgba(0, 0, 0, 0.1);--nl:#d9d9d9;--n0:#999;--n1:#808080;--n2:#666666;--shadow:rgba(0, 0, 0, 0.75);--cnt:#fff;--na:#333;--nb:#000}@media(prefers-color-scheme:dark){:root{--bg:#000;--fg:#ccc;--bg2:#333;--darken:rgba(255, 255, 255, 0.1);--nl:#666666;--n0:#808080;--n1:#999999;--n2:#b3b3b3;--shadow:rgba(128, 128, 128, 0.3);--cnt:#000;--na:#eee;--nb:#fff}}.neutral{color:var(--n0)}.bg-neutral{background:var(--nl)}a{color:var(--fg)}html,body{font-size:12px;line-height:1em;min-height:100vh;margin:0;padding:0;border:0;outline:0}*{box-sizing:border-box}body,textarea,input,select{background:var(--bg);color:var(--fg);border-radius:0;font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;font-size:1rem;margin:0}img{max-width:100%}.addon,.sm,.nav,textarea,input,select{outline:0;line-height:1rem}.container{padding:0 20px;width:auto}@media(min-width:800px){.container{margin:auto;max-width:1270px}}pre{background:var(--bg2);padding:10px}code{background:var(--darken);border:solid 1px var(--darken);padding:1px}.sm{font-size:.75rem}.big{font-size:2rem;line-height:2rem}.huge{font-size:3rem;line-height:3rem}.hl{background:var(--fg);color:var(--bg)}.tb,.btn{text-decoration:none;display:inline-block}.tb{font-weight:700;cursor:pointer;padding:2px}.tb:before,.tb:after{opacity:.3;display:inline-block}.tb:before{content:"❬"}.tb:after{content:"❭"}.tb:hover{text-decoration:underline}.tb:hover::before,.tb:hover::after{opacity:1}.tb:active:before{content:"❰"}.tb:active:after{content:"❱"}.btn{background:var(--n0);border:solid 2px #000;color:#fff;font-weight:700;cursor:pointer;display:inline-block;margin:0 4px 4px 0;padding:1rem 2rem;box-shadow:4px 4px var(--shadow);text-align:center;vertical-align:bottom}.btn:hover{background:var(--n1);color:#fff}.btn:active,.btn:focus{color:#fff;background:var(--n2);box-shadow:1px 1px #000;position:relative;top:3px;left:3px}.btn.sm{padding:.5rem 1rem}.btn.std{width:12rem}.btn.big.std{width:20rem}.btn.huge.std{width:24rem}.col,.row{display:flex;flex-direction:row;justify-content:stretch;align-items:stretch;flex-wrap:wrap;gap:1rem}.row>*{flex:1}.col>*{flex:0}.col{flex-direction:column}.start{justify-content:flex-start;align-items:flex-start}.middle{justify-content:center;align-item:center}.gapless{gap:0}.table,.c12{width:100%;flex:12}.c11{flex:11;width:91.66%}.c10{flex:10;width:83.33%}.c9{flex:9;width:75%}.c8{flex:8;width:66.66%}.c7{flex:7;width:58.33%}.c6{flex:6;width:50%}.c5{flex:5;width:41.66%}.c4{flex:4;width:33.33%}.c3{flex:3;width:25%}.c2{flex:2;width:16.66%}.c1{flex:1;width:8.33%}@media(max-width:800px){.row .col{flex:0 1 100%;width:100%}.no-mobile{display:none}}.no-grow{flex:0}.card,.block{padding:1rem;border:solid 1rem}.col.card,.col.block{justify-content:flex-start;align-items:flex-start}.card{border-color:var(--nl)}.block{border-color:transparent}.central{display:flex;align-items:center;justify-content:center;background-size:cover;min-height:100vh}button~.central{min-height:calc(100vh - 50px)}.hero{padding:2rem;border:double 1rem}.fill{flex-grow:1}.push{justify-self:flex-end;margin-top:auto}h1,h2,h3,h4,h5,h6{display:table;padding:.5rem;font-size:1rem;margin:0;outline:0;color:var(--bg);margin:1rem 0;border:solid 1px var(--fg)}.tight{margin:0}h1{background:var(--fg)}h2{background:var(--n2)}h2{background:var(--n1)}h3{background:var(--n0)}h4{background:var(--nl);color:var(--fg)}h5{background:var(--bg2);color:var(--fg)}h6{color:var(--fg)}.ico{font:20px Arial Unicode MS,Lucida Sans Unicode;line-height:10px;vertical-align:top}label>*{display:inline}form>*{display:block;margin-bottom:10px}textarea,input,select{border:2px solid;padding:8px}textarea,input[type=text]{-webkit-appearance:none;width:13em;outline:0;border:2px solid}.addon{padding:8px 12px;border-width:2px;border-style:solid none solid solid}textarea:focus,input:focus,select:focus{border-color:var(--i1)}.nav{background:var(--bg2);border-bottom:solid 1px var(--darken)}footer{background:var(--bg2);border-top:solid 1px var(--darken)}.nav{height:3rem;padding:11px 0 15px}.nav a{text-decoration:none;opacity:.7;padding-right:1em;position:relative;top:-1px}.nav a:hover{opacity:1}.nav .pagename{opacity:1;font-weight:700;font-size:22px;top:1px}.btn.btn-close{float:right;font-size:25px;margin:-4.1rem 0;display:none;border:none;box-shadow:none;background:0 0;color:var(--fg)}@media(max-width:640px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:var(--bg2);border-bottom:11px double;border-top:3px solid;content:'';float:right;height:.25rem;position:relative;right:0;top:8px;width:2rem}.nav a{display:block;padding:.5em 0;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:var(--bg2)}.msg{background:var(--nl);border-left:5px solid var(--n0);padding:1rem} \ No newline at end of file +:root{--bg:#fff;--fg:#000;--bg2:#eee;--darken:rgba(0, 0, 0, 0.1);--nl:#d9d9d9;--n0:#999;--n1:#808080;--n2:#666666;--shadow:rgba(0, 0, 0, 0.75);--cnt:#fff;--na:#333;--nb:#000}@media(prefers-color-scheme:dark){:root{--bg:#000;--fg:#ccc;--bg2:#333;--darken:rgba(255, 255, 255, 0.1);--nl:#666666;--n0:#808080;--n1:#999999;--n2:#b3b3b3;--shadow:rgba(128, 128, 128, 0.3);--cnt:#000;--na:#eee;--nb:#fff}}.neutral{color:var(--n0)}.bg-neutral{background:var(--nl)}a{color:var(--fg)}html,body{font-size:12px;line-height:1.5em;min-height:100vh;margin:0;padding:0;border:0;outline:0}*{box-sizing:border-box}body,textarea,input,select{background:var(--bg);color:var(--fg);border-radius:0;font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;font-size:1rem;margin:0}img{max-width:100%}.addon,.sm,.nav,textarea,input,select{outline:0;line-height:1rem}.container{padding:0 20px;width:100%}@media(min-width:1380px){.container{margin:auto;max-width:1270px}}pre{background:var(--bg2);padding:10px;overflow:scroll}code{background:var(--darken);border:solid 1px var(--darken);padding:1px}blockquote{margin:1rem 0;padding-left:1rem;border-left:solid 1rem var(--nl)}ul{list-style-type:square;list-style-position:outside;padding-inline-start:1.5rem}ol{padding-inline-start:2rem}ul>li::marker{font-size:1.5rem}.sm{font-size:.75rem}.big{font-size:2rem;line-height:2rem}.huge{font-size:3rem;line-height:3rem}.hl{background:var(--fg);color:var(--bg)}.doc{max-width:65ch;font-size:1.25rem;font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,segoe ui,helvetica neue,helvetica,Cantarell,Ubuntu,roboto,noto,arial,sans-serif}.tb,.btn{text-decoration:none;display:inline-block}.tb{font-weight:700;cursor:pointer;padding:2px}.tb:before,.tb:after{opacity:.3;display:inline-block}.tb:before{content:"❬"}.tb:after{content:"❭"}.tb:hover{text-decoration:underline}.tb:hover::before,.tb:hover::after{opacity:1}.tb:active:before{content:"❰"}.tb:active:after{content:"❱"}.btn{background:var(--n0);border:solid 2px #000;color:#fff;font-weight:700;cursor:pointer;display:inline-block;margin:0 4px 4px 0;padding:1rem 2rem;box-shadow:4px 4px var(--shadow);text-align:center;vertical-align:bottom}.btn:hover{background:var(--n1);color:#fff}.btn:active,.btn:focus{color:#fff;background:var(--n2);box-shadow:1px 1px #000;position:relative;top:3px;left:3px}.btn.sm{padding:.5rem 1rem}.btn.std{width:12rem}.btn.big.std{width:20rem}.btn.huge.std{width:24rem}.col,.row{display:flex;flex-direction:row;justify-content:stretch;align-items:stretch;flex-wrap:wrap;gap:1rem}.row>*{flex:1}.col>*{flex:0}.col{flex-direction:column}.start{justify-content:flex-start;align-items:flex-start}.middle{justify-content:center;align-item:center}.gapless{gap:0}.table,.c12{width:100%;flex:12}.c11{flex:11;width:91.66%}.c10{flex:10;width:83.33%}.c9{flex:9;width:75%}.c8{flex:8;width:66.66%}.c7{flex:7;width:58.33%}.c6{flex:6;width:50%}.c5{flex:5;width:41.66%}.c4{flex:4;width:33.33%}.c3{flex:3;width:25%}.c2{flex:2;width:16.66%}.c1{flex:1;width:8.33%}@media(max-width:800px){.row .col{flex:0 1 100%;width:100%}.no-mobile{display:none}}.no-grow{flex:0}.card,.block{padding:1rem;border:solid 1rem}.col.card,.col.block{justify-content:flex-start;align-items:flex-start}.card{border-color:var(--nl)}.block{border-color:transparent}.central{display:flex;align-items:center;justify-content:center;background-size:cover;min-height:100vh}button~.central{min-height:calc(100vh - 50px)}.hero{padding:2rem;border:double 1rem}.fill{flex-grow:1}.push{justify-self:flex-end;margin-top:auto}h1,h2,h3,h4,h5,h6{display:block;padding:.5rem;font-size:1rem;margin:0;outline:0;color:var(--bg);margin:1rem 0;border:solid 1px var(--fg)}.tight{margin:0}h1{background:var(--fg)}h2{background:var(--n2)}h2{background:var(--n1)}h3{background:var(--n0)}h4{background:var(--nl);color:var(--fg)}h5{background:var(--bg2);color:var(--fg)}h6{color:var(--fg)}.ico{font:20px Arial Unicode MS,Lucida Sans Unicode;line-height:10px;vertical-align:top}label>*{display:inline}form>*{display:block;margin-bottom:10px}textarea,input,select{border:2px solid;padding:8px}textarea,input[type=text]{-webkit-appearance:none;width:13em;outline:0;border:2px solid}.addon{padding:8px 12px;border-width:2px;border-style:solid none solid solid}textarea:focus,input:focus,select:focus{border-color:var(--i1)}.nav{background:var(--bg2);border-bottom:solid 1px var(--darken)}footer{background:var(--bg2);border-top:solid 1px var(--darken)}.nav{height:3rem;padding:11px 0 15px}.nav a{text-decoration:none;opacity:.7;padding-right:1em;position:relative;top:-1px}.nav a:hover{opacity:1}.nav .pagename{opacity:1;font-weight:700;font-size:22px;top:1px}.btn.btn-close{float:right;font-size:25px;margin:-4.1rem 0;display:none;border:none;box-shadow:none;background:0 0;color:var(--fg)}@media(max-width:640px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:var(--bg2);border-bottom:11px double;border-top:3px solid;content:'';float:right;height:.25rem;position:relative;right:0;top:8px;width:2rem}.nav a{display:block;padding:.5em 0;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:var(--bg2)}.msg{background:var(--nl);border-left:5px solid var(--n0);padding:1rem} \ No newline at end of file diff --git a/brut.min.css b/brut.min.css index 2f3dc0b..4b6fed6 100644 --- a/brut.min.css +++ b/brut.min.css @@ -1 +1 @@ -/* Copyright 2022 Yann Esposito; MIT licensed */:root{--bg:#fff;--fg:#000;--bg2:#eee;--darken:rgba(0, 0, 0, 0.1);--nl:#d9d9d9;--n0:#999;--n1:#808080;--n2:#666666;--shadow:rgba(0, 0, 0, 0.75);--cnt:#fff;--na:#333;--nb:#000}@media(prefers-color-scheme:dark){:root{--bg:#000;--fg:#ccc;--bg2:#333;--darken:rgba(255, 255, 255, 0.1);--nl:#666666;--n0:#808080;--n1:#999999;--n2:#b3b3b3;--shadow:rgba(128, 128, 128, 0.3);--cnt:#000;--na:#eee;--nb:#fff}}.neutral{color:var(--n0)}.bg-neutral{background:var(--nl)}a{color:var(--fg)}:root{--il:#b8d9fa;--i0:#59d;--i1:#408cd9;--i2:#2a7fd5;--ol:#7fdd7f;--o0:#494;--o1:#3c873c;--o2:#347634;--wl:#ffd24d;--w0:#c90;--w1:#b38600;--w2:#997300;--el:#fa9595;--e0:#d33;--e1:#d32323;--e2:#bd2020;--fl:#dc95fa;--f0:#a3d;--f1:#9e23d3;--f2:#8e20bd;--ia:#0b7ff4;--ib:#3399ff;--oa:#1f8b1f;--ob:#1dc01d;--wa:#997300;--wb:#cc9900;--ea:#d90404;--eb:#ff1111;--fa:#9904d9;--fb:#b811ff}@media(prefers-color-scheme:dark){:root{--il:#2266aa;--i0:#2a7fd5;--i1:#408cd9;--i2:#4b99e7;--ol:#255225;--o0:#347634;--o1:#3c873c;--o2:#39a439;--wl:#664d00;--w0:#997300;--w1:#b38600;--w2:#cc9900;--el:#921818;--e0:#bd2020;--e1:#d32323;--e2:#e92727;--fl:#6d1892;--f0:#8e20bd;--f1:#9e23d3;--f2:#af27e9}}.info{color:var(--i0)}.bg-info{background:var(--il)}.ok{color:var(--o0)}.bg-ok{background:var(--ol)}.warn{color:var(--w0)}.bg-warn{background:var(--wl)}.err{color:var(--e0)}.bg-err{background:var(--el)}.fatal{color:var(--f0)}.bg-fatal{background:var(--fl)}.msg.info{color:var(--fg);background:var(--il);border-color:var(--i0)}.msg.ok{color:var(--fg);background:var(--ol);border-color:var(--o0)}.msg.warn{color:var(--fg);background:var(--wl);border-color:var(--w0)}.msg.err{color:var(--fg);background:var(--el);border-color:var(--e0)}.msg.fatal{color:var(--fg);background:var(--fl);border-color:var(--f0)}.msg.alert,.msg.alert *{color:var(--cnt);background:var(--na);border-color:var(--nb)}.msg.alert.info,.msg.alert.info *{color:#fff;background:var(--ia);border-color:var(--ib)}.msg.alert.ok,.msg.alert.ok *{color:#fff;background:var(--oa);border-color:var(--ob)}.msg.alert.warn,.msg.alert.warn *{color:#fff;background:var(--wa);border-color:var(--wb)}.msg.alert.err,.msg.alert.err *{color:#fff;background:var(--ea);border-color:var(--eb)}.msg.alert.fatal,.msg.alert.fatal *{color:#fff;background:var(--fa);border-color:var(--fb)}.tb.info{color:var(--i0)}.tb.info:hover{color:var(--i1)}.tb.info:active{color:var(--i2)}.tb.ok{color:var(--o0)}.tb.ok:hover{color:var(--o1)}.tb.ok:active{color:var(--o2)}.tb.warn{color:var(--w0)}.tb.warn:hover{color:var(--w1)}.tb.warn:active{color:var(--w2)}.tb.err{color:var(--e0)}.tb.err:hover{color:var(--e1)}.tb.err:active{color:var(--e2)}.tb.fatal{color:var(--f0)}.tb.fatal:hover{color:var(--f1)}.tb.fatal:active{color:var(--f2)}.btn.info{background:var(--i0)}.btn.info:hover{background:var(--i1)}.btn.info:active,.btn.info:focus{background:var(--i2)}.btn.ok{background:var(--o0)}.btn.ok:hover{background:var(--o1)}.btn.ok:active,.btn.ok:focus{background:var(--o2)}.btn.warn{background:var(--w0)}.btn.warn:hover{background:var(--w1)}.btn.warn:active,.btn.warn:focus{background:var(--w2)}.btn.err{background:var(--e0)}.btn.err:hover{background:var(--e1)}.btn.err:active,.btn.err:focus{background:var(--e2)}.btn.fatal{background:var(--f0)}.btn.fatal:hover{background:var(--f1)}.btn.fatal:active,.btn.fatal:focus{background:var(--f2)}html,body{font-size:12px;line-height:1em;min-height:100vh;margin:0;padding:0;border:0;outline:0}*{box-sizing:border-box}body,textarea,input,select{background:var(--bg);color:var(--fg);border-radius:0;font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;font-size:1rem;margin:0}img{max-width:100%}.addon,.sm,.nav,textarea,input,select{outline:0;line-height:1rem}.container{padding:0 20px;width:auto}@media(min-width:800px){.container{margin:auto;max-width:1270px}}pre{background:var(--bg2);padding:10px}code{background:var(--darken);border:solid 1px var(--darken);padding:1px}.sm{font-size:.75rem}.big{font-size:2rem;line-height:2rem}.huge{font-size:3rem;line-height:3rem}.hl{background:var(--fg);color:var(--bg)}.tb,.btn{text-decoration:none;display:inline-block}.tb{font-weight:700;cursor:pointer;padding:2px}.tb:before,.tb:after{opacity:.3;display:inline-block}.tb:before{content:"❬"}.tb:after{content:"❭"}.tb:hover{text-decoration:underline}.tb:hover::before,.tb:hover::after{opacity:1}.tb:active:before{content:"❰"}.tb:active:after{content:"❱"}.btn{background:var(--n0);border:solid 2px #000;color:#fff;font-weight:700;cursor:pointer;display:inline-block;margin:0 4px 4px 0;padding:1rem 2rem;box-shadow:4px 4px var(--shadow);text-align:center;vertical-align:bottom}.btn:hover{background:var(--n1);color:#fff}.btn:active,.btn:focus{color:#fff;background:var(--n2);box-shadow:1px 1px #000;position:relative;top:3px;left:3px}.btn.sm{padding:.5rem 1rem}.btn.std{width:12rem}.btn.big.std{width:20rem}.btn.huge.std{width:24rem}.col,.row{display:flex;flex-direction:row;justify-content:stretch;align-items:stretch;flex-wrap:wrap;gap:1rem}.row>*{flex:1}.col>*{flex:0}.col{flex-direction:column}.start{justify-content:flex-start;align-items:flex-start}.middle{justify-content:center;align-item:center}.gapless{gap:0}.table,.c12{width:100%;flex:12}.c11{flex:11;width:91.66%}.c10{flex:10;width:83.33%}.c9{flex:9;width:75%}.c8{flex:8;width:66.66%}.c7{flex:7;width:58.33%}.c6{flex:6;width:50%}.c5{flex:5;width:41.66%}.c4{flex:4;width:33.33%}.c3{flex:3;width:25%}.c2{flex:2;width:16.66%}.c1{flex:1;width:8.33%}@media(max-width:800px){.row .col{flex:0 1 100%;width:100%}.no-mobile{display:none}}.no-grow{flex:0}.card,.block{padding:1rem;border:solid 1rem}.col.card,.col.block{justify-content:flex-start;align-items:flex-start}.card{border-color:var(--nl)}.block{border-color:transparent}.central{display:flex;align-items:center;justify-content:center;background-size:cover;min-height:100vh}button~.central{min-height:calc(100vh - 50px)}.hero{padding:2rem;border:double 1rem}.fill{flex-grow:1}.push{justify-self:flex-end;margin-top:auto}h1,h2,h3,h4,h5,h6{display:table;padding:.5rem;font-size:1rem;margin:0;outline:0;color:var(--bg);margin:1rem 0;border:solid 1px var(--fg)}.tight{margin:0}h1{background:var(--fg)}h2{background:var(--n2)}h2{background:var(--n1)}h3{background:var(--n0)}h4{background:var(--nl);color:var(--fg)}h5{background:var(--bg2);color:var(--fg)}h6{color:var(--fg)}.ico{font:20px Arial Unicode MS,Lucida Sans Unicode;line-height:10px;vertical-align:top}label>*{display:inline}form>*{display:block;margin-bottom:10px}textarea,input,select{border:2px solid;padding:8px}textarea,input[type=text]{-webkit-appearance:none;width:13em;outline:0;border:2px solid}.addon{padding:8px 12px;border-width:2px;border-style:solid none solid solid}textarea:focus,input:focus,select:focus{border-color:var(--i1)}.nav{background:var(--bg2);border-bottom:solid 1px var(--darken)}footer{background:var(--bg2);border-top:solid 1px var(--darken)}.nav{height:3rem;padding:11px 0 15px}.nav a{text-decoration:none;opacity:.7;padding-right:1em;position:relative;top:-1px}.nav a:hover{opacity:1}.nav .pagename{opacity:1;font-weight:700;font-size:22px;top:1px}.btn.btn-close{float:right;font-size:25px;margin:-4.1rem 0;display:none;border:none;box-shadow:none;background:0 0;color:var(--fg)}@media(max-width:640px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:var(--bg2);border-bottom:11px double;border-top:3px solid;content:'';float:right;height:.25rem;position:relative;right:0;top:8px;width:2rem}.nav a{display:block;padding:.5em 0;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:var(--bg2)}.msg{background:var(--nl);border-left:5px solid var(--n0);padding:1rem} \ No newline at end of file +/* Copyright 2022 Yann Esposito; MIT licensed */:root{--bg:#fff;--fg:#000;--bg2:#eee;--darken:rgba(0, 0, 0, 0.1);--nl:#d9d9d9;--n0:#999;--n1:#808080;--n2:#666666;--shadow:rgba(0, 0, 0, 0.75);--cnt:#fff;--na:#333;--nb:#000}@media(prefers-color-scheme:dark){:root{--bg:#000;--fg:#ccc;--bg2:#333;--darken:rgba(255, 255, 255, 0.1);--nl:#666666;--n0:#808080;--n1:#999999;--n2:#b3b3b3;--shadow:rgba(128, 128, 128, 0.3);--cnt:#000;--na:#eee;--nb:#fff}}.neutral{color:var(--n0)}.bg-neutral{background:var(--nl)}a{color:var(--fg)}:root{--il:#b8d9fa;--i0:#59d;--i1:#408cd9;--i2:#2a7fd5;--ol:#7fdd7f;--o0:#494;--o1:#3c873c;--o2:#347634;--wl:#ffd24d;--w0:#c90;--w1:#b38600;--w2:#997300;--el:#fa9595;--e0:#d33;--e1:#d32323;--e2:#bd2020;--fl:#dc95fa;--f0:#a3d;--f1:#9e23d3;--f2:#8e20bd;--ia:#0b7ff4;--ib:#3399ff;--oa:#1f8b1f;--ob:#1dc01d;--wa:#997300;--wb:#cc9900;--ea:#d90404;--eb:#ff1111;--fa:#9904d9;--fb:#b811ff}@media(prefers-color-scheme:dark){:root{--il:#2266aa;--i0:#2a7fd5;--i1:#408cd9;--i2:#4b99e7;--ol:#255225;--o0:#347634;--o1:#3c873c;--o2:#39a439;--wl:#664d00;--w0:#997300;--w1:#b38600;--w2:#cc9900;--el:#921818;--e0:#bd2020;--e1:#d32323;--e2:#e92727;--fl:#6d1892;--f0:#8e20bd;--f1:#9e23d3;--f2:#af27e9}}.info{color:var(--i0)}.bg-info{background:var(--il)}.ok{color:var(--o0)}.bg-ok{background:var(--ol)}.warn{color:var(--w0)}.bg-warn{background:var(--wl)}.err{color:var(--e0)}.bg-err{background:var(--el)}.fatal{color:var(--f0)}.bg-fatal{background:var(--fl)}.msg.info{color:var(--fg);background:var(--il);border-color:var(--i0)}.msg.ok{color:var(--fg);background:var(--ol);border-color:var(--o0)}.msg.warn{color:var(--fg);background:var(--wl);border-color:var(--w0)}.msg.err{color:var(--fg);background:var(--el);border-color:var(--e0)}.msg.fatal{color:var(--fg);background:var(--fl);border-color:var(--f0)}.msg.alert,.msg.alert *{color:var(--cnt);background:var(--na);border-color:var(--nb)}.msg.alert.info,.msg.alert.info *{color:#fff;background:var(--ia);border-color:var(--ib)}.msg.alert.ok,.msg.alert.ok *{color:#fff;background:var(--oa);border-color:var(--ob)}.msg.alert.warn,.msg.alert.warn *{color:#fff;background:var(--wa);border-color:var(--wb)}.msg.alert.err,.msg.alert.err *{color:#fff;background:var(--ea);border-color:var(--eb)}.msg.alert.fatal,.msg.alert.fatal *{color:#fff;background:var(--fa);border-color:var(--fb)}.tb.info{color:var(--i0)}.tb.info:hover{color:var(--i1)}.tb.info:active{color:var(--i2)}.tb.ok{color:var(--o0)}.tb.ok:hover{color:var(--o1)}.tb.ok:active{color:var(--o2)}.tb.warn{color:var(--w0)}.tb.warn:hover{color:var(--w1)}.tb.warn:active{color:var(--w2)}.tb.err{color:var(--e0)}.tb.err:hover{color:var(--e1)}.tb.err:active{color:var(--e2)}.tb.fatal{color:var(--f0)}.tb.fatal:hover{color:var(--f1)}.tb.fatal:active{color:var(--f2)}.btn.info{background:var(--i0)}.btn.info:hover{background:var(--i1)}.btn.info:active,.btn.info:focus{background:var(--i2)}.btn.ok{background:var(--o0)}.btn.ok:hover{background:var(--o1)}.btn.ok:active,.btn.ok:focus{background:var(--o2)}.btn.warn{background:var(--w0)}.btn.warn:hover{background:var(--w1)}.btn.warn:active,.btn.warn:focus{background:var(--w2)}.btn.err{background:var(--e0)}.btn.err:hover{background:var(--e1)}.btn.err:active,.btn.err:focus{background:var(--e2)}.btn.fatal{background:var(--f0)}.btn.fatal:hover{background:var(--f1)}.btn.fatal:active,.btn.fatal:focus{background:var(--f2)}html,body{font-size:12px;line-height:1.5em;min-height:100vh;margin:0;padding:0;border:0;outline:0}*{box-sizing:border-box}body,textarea,input,select{background:var(--bg);color:var(--fg);border-radius:0;font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;font-size:1rem;margin:0}img{max-width:100%}.addon,.sm,.nav,textarea,input,select{outline:0;line-height:1rem}.container{padding:0 20px;width:100%}@media(min-width:1380px){.container{margin:auto;max-width:1270px}}pre{background:var(--bg2);padding:10px;overflow:scroll}code{background:var(--darken);border:solid 1px var(--darken);padding:1px}blockquote{margin:1rem 0;padding-left:1rem;border-left:solid 1rem var(--nl)}ul{list-style-type:square;list-style-position:outside;padding-inline-start:1.5rem}ol{padding-inline-start:2rem}ul>li::marker{font-size:1.5rem}.sm{font-size:.75rem}.big{font-size:2rem;line-height:2rem}.huge{font-size:3rem;line-height:3rem}.hl{background:var(--fg);color:var(--bg)}.doc{max-width:65ch;font-size:1.25rem;font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,segoe ui,helvetica neue,helvetica,Cantarell,Ubuntu,roboto,noto,arial,sans-serif}.tb,.btn{text-decoration:none;display:inline-block}.tb{font-weight:700;cursor:pointer;padding:2px}.tb:before,.tb:after{opacity:.3;display:inline-block}.tb:before{content:"❬"}.tb:after{content:"❭"}.tb:hover{text-decoration:underline}.tb:hover::before,.tb:hover::after{opacity:1}.tb:active:before{content:"❰"}.tb:active:after{content:"❱"}.btn{background:var(--n0);border:solid 2px #000;color:#fff;font-weight:700;cursor:pointer;display:inline-block;margin:0 4px 4px 0;padding:1rem 2rem;box-shadow:4px 4px var(--shadow);text-align:center;vertical-align:bottom}.btn:hover{background:var(--n1);color:#fff}.btn:active,.btn:focus{color:#fff;background:var(--n2);box-shadow:1px 1px #000;position:relative;top:3px;left:3px}.btn.sm{padding:.5rem 1rem}.btn.std{width:12rem}.btn.big.std{width:20rem}.btn.huge.std{width:24rem}.col,.row{display:flex;flex-direction:row;justify-content:stretch;align-items:stretch;flex-wrap:wrap;gap:1rem}.row>*{flex:1}.col>*{flex:0}.col{flex-direction:column}.start{justify-content:flex-start;align-items:flex-start}.middle{justify-content:center;align-item:center}.gapless{gap:0}.table,.c12{width:100%;flex:12}.c11{flex:11;width:91.66%}.c10{flex:10;width:83.33%}.c9{flex:9;width:75%}.c8{flex:8;width:66.66%}.c7{flex:7;width:58.33%}.c6{flex:6;width:50%}.c5{flex:5;width:41.66%}.c4{flex:4;width:33.33%}.c3{flex:3;width:25%}.c2{flex:2;width:16.66%}.c1{flex:1;width:8.33%}@media(max-width:800px){.row .col{flex:0 1 100%;width:100%}.no-mobile{display:none}}.no-grow{flex:0}.card,.block{padding:1rem;border:solid 1rem}.col.card,.col.block{justify-content:flex-start;align-items:flex-start}.card{border-color:var(--nl)}.block{border-color:transparent}.central{display:flex;align-items:center;justify-content:center;background-size:cover;min-height:100vh}button~.central{min-height:calc(100vh - 50px)}.hero{padding:2rem;border:double 1rem}.fill{flex-grow:1}.push{justify-self:flex-end;margin-top:auto}h1,h2,h3,h4,h5,h6{display:block;padding:.5rem;font-size:1rem;margin:0;outline:0;color:var(--bg);margin:1rem 0;border:solid 1px var(--fg)}.tight{margin:0}h1{background:var(--fg)}h2{background:var(--n2)}h2{background:var(--n1)}h3{background:var(--n0)}h4{background:var(--nl);color:var(--fg)}h5{background:var(--bg2);color:var(--fg)}h6{color:var(--fg)}.ico{font:20px Arial Unicode MS,Lucida Sans Unicode;line-height:10px;vertical-align:top}label>*{display:inline}form>*{display:block;margin-bottom:10px}textarea,input,select{border:2px solid;padding:8px}textarea,input[type=text]{-webkit-appearance:none;width:13em;outline:0;border:2px solid}.addon{padding:8px 12px;border-width:2px;border-style:solid none solid solid}textarea:focus,input:focus,select:focus{border-color:var(--i1)}.nav{background:var(--bg2);border-bottom:solid 1px var(--darken)}footer{background:var(--bg2);border-top:solid 1px var(--darken)}.nav{height:3rem;padding:11px 0 15px}.nav a{text-decoration:none;opacity:.7;padding-right:1em;position:relative;top:-1px}.nav a:hover{opacity:1}.nav .pagename{opacity:1;font-weight:700;font-size:22px;top:1px}.btn.btn-close{float:right;font-size:25px;margin:-4.1rem 0;display:none;border:none;box-shadow:none;background:0 0;color:var(--fg)}@media(max-width:640px){.btn.btn-close{display:block}.nav{overflow:hidden}.pagename{margin-top:-11px}.nav:active,.nav:focus{height:auto}.nav div:before{background:var(--bg2);border-bottom:11px double;border-top:3px solid;content:'';float:right;height:.25rem;position:relative;right:0;top:8px;width:2rem}.nav a{display:block;padding:.5em 0;width:50%}}.table th,.table td{padding:.5em;text-align:left}.table tbody>:nth-child(2n-1){background:var(--bg2)}.msg{background:var(--nl);border-left:5px solid var(--n0);padding:1rem} \ No newline at end of file diff --git a/h/docs.html b/h/docs.html index 76307a4..0d64f44 100644 --- a/h/docs.html +++ b/h/docs.html @@ -302,50 +302,50 @@

<i class="ico">Copy and paste icons from above here!</i>

Grids

-
c12
+
c12
-
c11
+
c11
c1
-
c10
+
c10
c2
-
c9
+
c9
c3
-
c8
+
c8
c4
-
c7
+
c7
c5
-
c6
+
c6
c6
-
c5
+
c5
c7
-
c4
+
c4
c8
-
c3
+
c3
c9
-
c2
+
c2
c10
-
c1
+
c1
c11
diff --git a/h/g-docs.html b/h/g-docs.html index 5228f08..8703046 100644 --- a/h/g-docs.html +++ b/h/g-docs.html @@ -1,4 +1,76 @@ -BRUT - documentation

Images

Inside a grid

Inside a card

Directly a card

In a block

<div id="images">
+BRUT - documentation

title in h1

Some text in <p> with different styles; bold, strong, italic, emphasis, code, and if you really want something to be extremly visible use the class hl.

The text should be very dense on purpose. Forget your lessons about nice space in design here. The goal of this design is to produce professional UI applications. So no time to make it breathes. We want to make it compact and efficient.

Not we still try to keep a coherent and nice vertical rythm.

Remark if you need to present a long text to read you can still use the class doc. Take a look at the next paragraph for example:

Lorem ipsum with pretty Lorem ipsum dolor sit amet consectetur adipiscing elit, urna consequat felis +vehicula class ultricies mollis dictumst, aenean non a in donec nulla. +Phasellus ante pellentesque erat cum risus consequat imperdiet aliquam, integer +placerat et turpis mi eros nec lobortis taciti, vehicula nisl litora tellus +ligula porttitor metus. + +Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit, +euismod libero facilisi aptent elementum felis blandit cursus gravida sociis +erat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est ad. +Massa curae fringilla porttitor quam sollicitudin iaculis aptent leo ligula +euismod dictumst, orci penatibus mauris eros etiam praesent erat volutpat +posuere hac. +Metus fringilla nec ullamcorper odio aliquam lacinia conubia mauris tempor, +etiam ultricies proin quisque lectus sociis id tristique, integer phasellus +taciti pretium adipiscing tortor sagittis ligula. + +Mollis pretium lorem primis senectus habitasse lectus scelerisque donec, +ultricies tortor suspendisse adipiscing fusce morbi volutpat pellentesque, +consectetur mi risus molestie curae malesuada cum. +Dignissim lacus convallis massa mauris enim ad mattis magnis senectus montes, +mollis taciti phasellus accumsan bibendum semper blandit suspendisse faucibus +nibh est, metus lobortis morbi cras magna vivamus per risus fermentum. +Dapibus imperdiet praesent magnis ridiculus congue gravida curabitur dictum +sagittis, enim et magna sit inceptos sodales parturient pharetra mollis, aenean +vel nostra tellus commodo pretium sapien sociosqu.

The doc class ensure the width of the text is not too wide and use a very legible font.

Some blockquote

itemization

ul

  • item 1
  • item 2
  • item 3; with a very long text that should wrap to the next line in any browser. We'll see that the wrapped text should be aligned with the text of the other items. This is due to the list-style-position: outside.
  • item 4

ol

  1. item 1
  2. item 2
  3. item 3
  4. item 4
<div id="textual">
+<h1>title in h1</h1>
+<p>Some text in &lt;p&gt; with different styles; <b>bold</b>, <strong>strong</strong>, <i>italic</i>, <em>emphasis</em>, <code>code</code>, and if you really want something to be extremly visible use the class <code class="hl">hl</code>.</p>
+<p>The text should be <strong class="hl">very dense</strong> on purpose. Forget your lessons about nice space in design here. The goal of this design is to produce <em>professional</em> UI applications. So no time to make it breathes. We want to make it compact and efficient.</p>
+<p>Not we still try to keep a coherent and nice vertical rythm.</p>
+<p>Remark if you need to present a long text to read you can still use the class <code>doc</code>. Take a look at the next paragraph for example: </p>
+<blockquote class="doc">Lorem ipsum with pretty  Lorem ipsum dolor sit amet consectetur adipiscing elit, urna consequat felis
+vehicula class ultricies mollis dictumst, aenean non a in donec nulla.
+Phasellus ante pellentesque erat cum risus consequat imperdiet aliquam, integer
+placerat et turpis mi eros nec lobortis taciti, vehicula nisl litora tellus
+ligula porttitor metus.
+
+Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit,
+euismod libero facilisi aptent elementum felis blandit cursus gravida sociis
+erat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est ad.
+Massa curae fringilla porttitor quam sollicitudin iaculis aptent leo ligula
+euismod dictumst, orci penatibus mauris eros etiam praesent erat volutpat
+posuere hac.
+Metus fringilla nec ullamcorper odio aliquam lacinia conubia mauris tempor,
+etiam ultricies proin quisque lectus sociis id tristique, integer phasellus
+taciti pretium adipiscing tortor sagittis ligula.
+
+Mollis pretium lorem primis senectus habitasse lectus scelerisque donec,
+ultricies tortor suspendisse adipiscing fusce morbi volutpat pellentesque,
+consectetur mi risus molestie curae malesuada cum.
+Dignissim lacus convallis massa mauris enim ad mattis magnis senectus montes,
+mollis taciti phasellus accumsan bibendum semper blandit suspendisse faucibus
+nibh est, metus lobortis morbi cras magna vivamus per risus fermentum.
+Dapibus imperdiet praesent magnis ridiculus congue gravida curabitur dictum
+sagittis, enim et magna sit inceptos sodales parturient pharetra mollis, aenean
+vel nostra tellus commodo pretium sapien sociosqu.</blockquote>
+<p>The <code>doc</code> class ensure the width of the text is not too wide and use a very legible font.</p>
+<blockquote>Some blockquote</blockquote>
+<h2>itemization</h2>
+<h3>ul</h3>
+<ul>
+<li>item 1</li>
+<li>item 2</li>
+<li>item 3; with a very long text that should wrap to the next line in any browser. We&apos;ll see that the wrapped text should be aligned with the text of the other items. This is due to the <code>list-style-position: outside</code>.</li>
+<li>item 4</li>
+</ul>
+<h3>ol</h3>
+<ol>
+<li>item 1</li>
+<li>item 2</li>
+<li>item 3</li>
+<li>item 4</li>
+</ol>
+</div>

Images

Inside a grid

Inside a card

Directly a card

In a block

<div id="images">
 <h1>Images</h1>
 <h2>Inside a grid</h2>
 <div class="row">
@@ -69,6 +141,360 @@ support all &quot;Total Set&quot; icons, if a substantial
 portion of your users use old Android devices
 you should stick to the &quot;Android Safe&quot; set.
 (The &quot;Total Set&quot; does not include icons from the &quot;Android Safe&quot; set.)
-
&lt;i class=&quot;ico&quot;&gt;Copy and paste icons from above here!&lt;/i&gt;

Grids

c12
c11
c1
c10
c2
c9
c3
c8
c4
c7
c5
c6
c6
c5
c7
c4
c8
c3
c9
c2
c10
c1
c11
c12

&lt;div class=&quot;row&quot;&gt;
&lt;div class=&quot;c12&quot;&gt;12&lt;/div&gt;
&lt;/div&gt; +
&lt;i class=&quot;ico&quot;&gt;Copy and paste icons from above here!&lt;/i&gt;

Grids

c12
c11
c1
c10
c2
c9
c3
c8
c4
c7
c5
c6
c6
c5
c7
c4
c8
c3
c9
c2
c10
c1
c11
c12

&lt;div class=&quot;row&quot;&gt;
&lt;div class=&quot;c12&quot;&gt;12&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;row&quot;&gt;
&lt;div class=&quot;c4&quot;&gt;4&lt;/div&gt;
&lt;div class=&quot;c8&quot;&gt;8&lt;/div&gt;
&lt;/div&gt; -

Headings

By default there is some space before and after any heading:

h1

h2

h3

h4

h5
h6

You can remove the space by using the class tight to the heading:

h1 tight

h2 tight

h3 tight

h4 tight

h5 tight
h6 tight

&lt;h1&gt;Level One Heading&lt;/h1&gt;
\ No newline at end of file +

Headings

By default there is some space before and after any heading:

h1

h2

h3

h4

h5
h6

You can remove the space by using the class tight to the heading:

h1 tight

h2 tight

h3 tight

h4 tight

h5 tight
h6 tight

&lt;h1&gt;Level One Heading&lt;/h1&gt;
<div>
+<h1>Buttons</h1>
+<h2>Text Buttons</h2>
+<h3>Classic</h3>
+<a class="tb">tb</a>
+<a class="tb info">tb info</a>
+<a class="tb ok">tb ok</a>
+<a class="tb warn">tb warn</a>
+<a class="tb err">tb err</a>
+<a class="tb fatal">tb fatal</a>
+<h3>Sizes</h3>
+<div class="block">Text<a class="tb sm">small</a>
+<a class="tb">normal</a>
+<a class="tb big">Big</a>
+<a class="tb huge">HUGE</a>
+</div>
+<div class="row">
+<div class="col c2 gapless">
+<span> Text <a class="tb sm">tb sm</a> </span>
+<a class="tb sm info">tb sm</a>
+<a class="tb sm ok">tb sm</a>
+<a class="tb sm warn">tb sm</a>
+</div>
+<div class="col c2 gapless">
+<a class="tb">tb</a>
+<a class="tb info">tb</a>
+<a class="tb ok">tb</a>
+<a class="tb warn">tb</a>
+</div>
+<div class="col c3 gapless">
+<a class="tb big warn">tb big</a>
+<a class="tb big err">tb big</a>
+<a class="tb big fatal">tb big</a>
+</div>
+<div class="col c5 gapless">
+<a class="tb huge err">tb huge</a>
+<a class="tb huge fatal">tb huge</a>
+</div>
+</div>
+<h2>Classic</h2>
+<a class="btn">btn</a>
+<a class="btn info">btn info</a>
+<a class="btn ok">btn ok</a>
+<a class="btn warn">btn warn</a>
+<a class="btn err">btn err</a>
+<a class="btn fatal">btn fatal</a>
+<pre class="block">&amp;lt;a class=&amp;quot;btn btn-b&amp;quot;&amp;gt;btn-b&amp;lt;/a&amp;gt;</pre>
+<h2>Sizes</h2>
+<a class="btn sm">btn sm</a>
+<a class="btn info">btn info</a>
+<a class="btn big warn">btn big warn</a>
+<a class="btn huge err">btn huge err</a>
+<pre class="block">&amp;lt;a class=&amp;quot;btn sm info&amp;quot;&amp;gt;btn sm info&amp;lt;/a&amp;gt;</pre>
+<div class="row">
+<div class="col c4 card">
+<h3>Standardized Width <code>btn std</code>
+</h3>
+<div class="col">
+<a class="btn std">btn std</a>
+<a class="btn std info">btn std info</a>
+<a class="btn std ok">btn std ok</a>
+<a class="btn std warn">btn std warn</a>
+<a class="btn std err">btn std err</a>
+<a class="btn std fatal">btn std fatal</a>
+</div>
+</div>
+<div class="col c4 card">
+<h3>Big</h3>
+<div class="col">
+<a class="btn std big ">btn std</a>
+<a class="btn std big info">btn std info</a>
+<a class="btn std big ok">btn std ok</a>
+<a class="btn std big warn">btn std warn</a>
+</div>
+</div>
+<div class="col c4 card">
+<h3>Huge</h3>
+<div class="col">
+<a class="btn std huge">btn std</a>
+<a class="btn std huge info">btn std info</a>
+<a class="btn std huge ok">btn std ok</a>
+</div>
+</div>
+</div>
+<h1>Messages</h1>
+<div class="row">
+<div class="col c6 gapless">
+<h2>Basic Messages</h2>
+<br />
+<div class="msg">
+<strong>Normal Message</strong> This is a normal message with <code>msg</code>.</div>
+<div class="msg info">
+<strong>
+<i class="ico">☞</i> Info</strong> This is done by adding <code>info</code> to the class.
+</div>
+<div class="msg ok">
+<strong>
+<i class="ico">☑</i> OK</strong> This is done by adding <code>ok</code> to the class.
+</div>
+<div class="msg warn">
+<strong>
+<i class="ico">☣</i> Warning</strong> This is done by adding <code>warn</code> to the class.
+</div>
+<div class="msg err">
+<strong>
+<i class="ico">☒</i> Error</strong> This is done by adding <code>err</code> to the class.
+</div>
+<div class="msg fatal">
+<strong>
+<i class="ico">☒</i> Fatal</strong> This is done by adding <code>fatal</code> to the class.
+</div>
+</div>
+<div class="col c6 gapless">
+<h2>Strong Alerts</h2>
+<br />
+<div class="msg alert">
+<strong>Alert Message</strong>This is a normal message with <code>msg</code>.
+</div>
+<div class="msg alert info">
+<strong>
+<i class="ico">☞</i> Alert Info</strong>This is done by adding <code>info</code> to the class.
+</div>
+<div class="msg alert ok">
+<strong>
+<i class="ico">☑</i> Alert OK</strong>This is done by adding <code>ok</code> to the class.
+</div>
+<div class="msg alert warn">
+<strong>
+<i class="ico">☣</i> Alert Warning</strong>This is done by adding <code>warn</code> to the class.
+</div>
+<div class="msg alert err">
+<strong>
+<i class="ico">☒</i> Alert Error</strong>This is done by adding <code>err</code> to the class.
+</div>
+<div class="msg alert fatal">
+<strong>
+<i class="ico">☒</i> Alert Fatal</strong>This is done by adding <code>fatal</code> to the class.
+</div>
+</div>
+</div>
+<pre>&amp;lt;div class=&amp;quot;msg&amp;quot;&amp;gt;
+  &amp;lt;strong&amp;gt;Alert headline!&amp;lt;/strong&amp;gt;
+  Message text
+&amp;lt;/div&amp;gt;</pre>
+<div>
+<h1>Forms</h1>
+<input class="neutral" placeholder="input" type="text" />
+<br />
+<textarea class="neutral" placeholder="textarea" rows="3">
+</textarea>
+<br />
+<span class="addon bg-info">$</span>
+<input type="text" />
+<br />
+<pre>&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;
+<br />&amp;lt;textarea rows=&amp;quot;3&amp;quot;&amp;gt;
+<br />&amp;lt;span class=&amp;quot;addon&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;</pre>
+<div class="msg">
+<strong>Be careful with addons!</strong> If you do not want a space between the addon and the input make sure that there is no space between the <code>&amp;lt;/span&amp;gt;</code> and <code>&amp;lt;input&amp;gt;</code> tags. Example: <pre>... &amp;lt;/span&amp;gt; &amp;lt;input ...</pre>
+<span class="addon">$</span>
+<input class="smooth" type="text" />
+<pre>... &amp;lt;/span&amp;gt;&amp;lt;input ...</pre>
+<span class="addon">$</span>
+<input class="smooth" type="text" />
+</div>
+</div>
+<div class="navbar">
+<h1>Navbars</h1>
+<nav class="nav" onclick="this.focus()" tabindex="-1">
+<div class="container">
+<a class="pagename current" href="#">BRUT</a>
+<a href="#">One</a>
+<a href="#">Two</a>
+<a href="#">Three</a>
+<a href="#">Four</a>
+</div>
+</nav>
+<button class="btn-close btn sm">×</button>
+<br />
+<pre>&amp;lt;nav class=&amp;quot;nav&amp;quot; tabindex=&amp;quot;-1&amp;quot; onclick=&amp;quot;this.focus()&amp;quot;&amp;gt;
+    &amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;
+        &amp;lt;a class=&amp;quot;pagename current&amp;quot; href=&amp;quot;#&amp;quot;&amp;gt;BRUT&amp;lt;/a&amp;gt;
+        &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;One&amp;lt;/a&amp;gt;
+        &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Two&amp;lt;/a&amp;gt;
+        &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Three&amp;lt;/a&amp;gt;
+    &amp;lt;/div&amp;gt;
+&amp;lt;/nav&amp;gt;
+&amp;lt;button class=&amp;quot;btn-close btn sm&amp;quot;&amp;gt;×&amp;lt;/button&amp;gt;</pre>
+</div>
+<div>
+<h1>Tables</h1>
+<table class="table">
+<thead>
+<tr>
+<th>#</th>
+<th>Widgets Sold</th>
+<th>Revenue (£)</th>
+<th>Profit (£)</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>1</td>
+<td>5</td>
+<td>10</td>
+<td>2</td>
+</tr>
+<tr>
+<td>2</td>
+<td>10</td>
+<td>20</td>
+<td>4</td>
+</tr>
+<tr>
+<td>3</td>
+<td>500</td>
+<td>1000</td>
+<td>200</td>
+</tr>
+</tbody>
+</table>
+<br />
+<br />
+<pre>&amp;lt;table class=&amp;quot;table&amp;quot;&amp;gt;
+  &amp;lt;thead&amp;gt;
+    &amp;lt;tr&amp;gt;
+      &amp;lt;th&amp;gt;#&amp;lt;/th&amp;gt;
+      &amp;lt;th&amp;gt;Widgets Sold&amp;lt;/th&amp;gt;
+    &amp;lt;/tr&amp;gt;
+  &amp;lt;/thead&amp;gt;
+  &amp;lt;tbody&amp;gt;
+    &amp;lt;tr&amp;gt;
+      &amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;
+      &amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;
+    &amp;lt;/tr&amp;gt;
+    &amp;lt;tr&amp;gt;
+      &amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;
+      &amp;lt;td&amp;gt;10&amp;lt;/td&amp;gt;
+    &amp;lt;/tr&amp;gt;
+    &amp;lt;tr&amp;gt;
+      &amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;
+      &amp;lt;td&amp;gt;500&amp;lt;/td&amp;gt;
+    &amp;lt;/tr&amp;gt;
+  &amp;lt;/tbody&amp;gt;
+&amp;lt;/table&amp;gt;
+</pre>
+</div>
+<h1>Icons</h1>
+<div class="icons">
+<div class="row">
+<div class="c6">
+<div class="col card">
+<div class="block">
+<b>Android Safe</b>
+</div>
+<i class="ico block" style="line-height: 1.5rem">☎ ♂ ♀ ⓧ © § ® ⇦ ⇧ ⇨ ⇩♠ ♣ ♥ ♦ ♪ ♛ ♜ ♝ ♞ ♟☜ ☞ ♨ ♭ ♯ ¥£ ¢❊ ฿ ๏ ※ ₧ ₨ ₪ € №
+</i>
+<div class="msg push">The &amp;quot;Android Safe&amp;quot; icons work everywhere, tested on hundreds of devices.
+</div>
+</div>
+</div>
+<div class="c6">
+<div class="col card">
+<div class="block">
+<b>Total Set</b>
+</div>
+<i class="ico block" style="line-height: 1.5rem">✉ ✰ ☁ ✈ ☑ ☒ ✆ ☀ ☮ ☢ ☠ ☣ ⌂ ℗ ☺ ☻ ☼ ∡ ∿ ⊝ ⊘ ⁂ ☤ ♫ ☄ ✎ ☟ ☝ ☹ ☭ ☚ ☛ ✌ 〠 ☃ ♮ ☂ ☸ ✍ ☯ ✂ ₩ ◍ ۩
+</i>
+<div class="msg warn push">Although over 75% of Android devices we tested
+support all &amp;quot;Total Set&amp;quot; icons, if a substantial
+portion of your users use old Android devices
+you should stick to the &amp;quot;Android Safe&amp;quot; set.
+(The &amp;quot;Total Set&amp;quot; does not include icons from the &amp;quot;Android Safe&amp;quot; set.)
+</div>
+</div>
+</div>
+</div>
+<pre>&amp;lt;i class=&amp;quot;ico&amp;quot;&amp;gt;Copy and paste icons from above here!&amp;lt;/i&amp;gt;</pre>
+<h1>Grids</h1>
+<div class="row">
+<div class="bg-neutral c12">c12</div>
+</div>
+<div class="row">
+<div class="bg-neutral c11">c11</div>
+<div class="light c1">c1</div>
+</div>
+<div class="row">
+<div class="bg-neutral c10">c10</div>
+<div class="light c2">c2</div>
+</div>
+<div class="row">
+<div class="bg-neutral c9">c9</div>
+<div class="light c3">c3</div>
+</div>
+<div class="row">
+<div class="bg-neutral c8">c8</div>
+<div class="light c4">c4</div>
+</div>
+<div class="row">
+<div class="bg-neutral c7">c7</div>
+<div class="light c5">c5</div>
+</div>
+<div class="row">
+<div class="bg-neutral c6">c6</div>
+<div class="light c6">c6</div>
+</div>
+<div class="row">
+<div class="bg-neutral c5">c5</div>
+<div class="light c7">c7</div>
+</div>
+<div class="row">
+<div class="bg-neutral c4">c4</div>
+<div class="light c8">c8</div>
+</div>
+<div class="row">
+<div class="bg-neutral c3">c3</div>
+<div class="light c9">c9</div>
+</div>
+<div class="row">
+<div class="bg-neutral c2">c2</div>
+<div class="light c10">c10</div>
+</div>
+<div class="row">
+<div class="bg-neutral c1">c1</div>
+<div class="light c11">c11</div>
+</div>
+<div class="row">
+<div class="light c12">c12</div>
+</div>
+<br />
+<pre>&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;<br />    &amp;lt;div class=&amp;quot;c12&amp;quot;&amp;gt;12&amp;lt;/div&amp;gt;<br />&amp;lt;/div&amp;gt;
+<br />&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;<br />    &amp;lt;div class=&amp;quot;c4&amp;quot;&amp;gt;4&amp;lt;/div&amp;gt;<br />    &amp;lt;div class=&amp;quot;c8&amp;quot;&amp;gt;8&amp;lt;/div&amp;gt;<br />&amp;lt;/div&amp;gt;
+</pre>
+</div>
+<h1>Headings</h1>
+<div class="headings">
+<p>By default there is some space before and after any heading:</p>
+<h1>h1</h1>
+<h2>h2</h2>
+<h3>h3</h3>
+<h4>h4</h4>
+<h5>h5</h5>
+<h6>h6</h6>
+<br />
+<p>You can remove the space by using the class <code>tight</code> to the heading:</p>
+<h1 class="tight">h1 tight</h1>
+<h2 class="tight">h2 tight</h2>
+<h3 class="tight">h3 tight</h3>
+<h4 class="tight">h4 tight</h4>
+<h5 class="tight">h5 tight</h5>
+<h6 class="tight">h6 tight</h6>
+<br />
+<pre>&amp;lt;h1&amp;gt;Level One Heading&amp;lt;/h1&amp;gt;</pre>
+</div>
+</div>
\ No newline at end of file diff --git a/src/general.less b/src/general.less index ad9b6f0..c591f31 100644 --- a/src/general.less +++ b/src/general.less @@ -1,4 +1,4 @@ -html,body { font-size: 12px; line-height: 1em; min-height: 100vh; margin: 0; padding:0; border: 0; outline: 0;} +html,body { font-size: 12px; line-height: 1.5em; min-height: 100vh; margin: 0; padding:0; border: 0; outline: 0;} * { box-sizing: border-box; } body, textarea, input, select { background: var(--bg); @@ -17,10 +17,10 @@ img { max-width: 100%; } .container { padding: 0 20px; - width: auto; + width: 100%; } -@media (min-width:800px) { +@media (min-width:1380px) { .container { margin: auto; max-width: 1270px; @@ -29,14 +29,26 @@ img { max-width: 100%; } pre { background: var(--bg2); padding: 10px; + overflow: scroll; } code { background: var(--darken); border: solid 1px var(--darken); padding: 1px; } +blockquote { margin: 1rem 0; padding-left: 1rem; border-left: solid 1rem var(--nl); } +ul { list-style-type: square; + list-style-position: outside; + padding-inline-start: 1.5rem; + } +ol { + padding-inline-start: 2rem; +} +ul > li::marker { font-size: 1.5rem; } .sm { font-size: 0.75rem; } .big { font-size: 2rem; line-height: 2rem;} .huge { font-size: 3rem; line-height: 3rem;} /* highligh revert the colors */ .hl { background: var(--fg); color: var(--bg); } +/* doc are for long text to read */ +.doc { max-width: 65ch; font-size: 1.25rem; font-family: -apple-system,BlinkMacSystemFont,avenir next,avenir,segoe ui,helvetica neue,helvetica,Cantarell,Ubuntu,roboto,noto,arial,sans-serif; } diff --git a/src/headings.less b/src/headings.less index d969be3..6f97bd3 100644 --- a/src/headings.less +++ b/src/headings.less @@ -1,7 +1,7 @@ /* Make the default heading style larger */ h1, h2, h3, h4, h5, h6 { - display: table; + display: block; padding: 0.5rem; font-size: 1rem; margin: 0;