diff --git a/bb.edn b/bb.edn index ceffd85..8468cfa 100644 --- a/bb.edn +++ b/bb.edn @@ -1,5 +1,6 @@ {:paths ["bb"] - :deps {hiccup/hiccup {:mvn/version "1.0.5"}} + :deps {hiccup/hiccup {:mvn/version "1.0.5"} + org.jsoup/jsoup {:mvn/version "1.15.3"}} :min-bb-version "0.4.0" :tasks {clean {:doc "clean temporary assets" diff --git a/bb/brut/build_css.clj b/bb/brut/build_css.clj index 5da7815..7138fb8 100644 --- a/bb/brut/build_css.clj +++ b/bb/brut/build_css.clj @@ -32,8 +32,8 @@ (printf "building: %s\n" item) (let [css (fs/file tmp-dir (str item ".css")) min-css (fs/file dist (str item ".min.css")) - _ @(process ["lessc" (format "src/%s.less" item)] {:out css}) - minified (-> @(process ["minify" css] {:out :string}) :out)] + _ @(process ["lessc" (format "src/%s.less" item)] {:out css}) + minified (-> @(process ["minify" css] {:out :string}) :out)] (spit min-css minified) (when-not (= "extended-colors" item) (spit tmp-css minified :append true)))) diff --git a/bb/brut/site.clj b/bb/brut/site.clj index 7f10d8d..edf8ebb 100644 --- a/bb/brut/site.clj +++ b/bb/brut/site.clj @@ -1,7 +1,12 @@ (ns brut.site (:require [hiccup2.core :as h] - [clojure.string :as string] - [babashka.fs :as fs])) + [babashka.fs :as fs] + [babashka.process :refer [process]])) + +(defn html-pp [html-str] + (:out + @(process ["tidy" "-i" "-utf8"] {:in html-str + :out :string}))) (def brutalism-img "h/img/brutalism.webp") @@ -94,7 +99,7 @@ (defn to-pre [hc] (h/html {:escape-strings? true} [:pre (-> (str (h/html hc)) - (string/replace #"><" ">\n<"))])) + html-pp)])) (defn mk-docs [rel-pref _metas] (let [to (fn [path] (str rel-pref path)) diff --git a/h/g-docs.html b/h/g-docs.html index b3f7c6e..6ff24c0 100644 --- a/h/g-docs.html +++ b/h/g-docs.html @@ -22,156 +22,192 @@ 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
list-style-position: outside
.<div id="textual"> -<h1>title in h1</h1> -<p>Some text in <p> 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'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>
Inside a card
Directly a card
In a block
<div id="images"> -<h1>Images</h1> -<h2>Inside a grid</h2> -<div class="row"> -<div class="card"> -<p>Inside a card</p> -<img src="../h/img/brutalism.webp" /> -</div> -<div> -<p>Directly a card</p> -<img src="../h/img/brutalism.webp" /> -</div> -<div class="block"> -<p>In a block</p> -<img src="../h/img/brutalism.webp" /> -</div> -</div> -</div>
msg
.info
to the class.
+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
list-style-position: outside
.<!DOCTYPE html> +<html> +<head> + <meta name="generator" content= + "HTML Tidy for HTML5 for Apple macOS version 5.8.0"> + <title></title> +</head> +<body> + <div id="textual"> + <h1>title in h1</h1> + <p>Some text in <p> 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'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> +</body> +</html> +
Inside a card
Directly a card
In a block
<!DOCTYPE html> +<html> +<head> + <meta name="generator" content= + "HTML Tidy for HTML5 for Apple macOS version 5.8.0"> + <title></title> +</head> +<body> + <div id="images"> + <h1>Images</h1> + <h2>Inside a grid</h2> + <div class="row"> + <div class="card"> + <p>Inside a card</p><img src="../h/img/brutalism.webp"></div> + <div> + <p>Directly a card</p><img src= + "../h/img/brutalism.webp"></div> + <div class="block"> + <p>In a block</p><img src="../h/img/brutalism.webp"></div> + </div> + </div> +</body> +</html> +
msg
.info
to the class.
ok
to the class.
warn
to the class.
err
to the class.
@@ -227,103 +263,107 @@ you should stick to the "Android Safe" set.
(The "Total Set" does not include icons from the "Android Safe" set.)
<i class="ico">Copy and paste icons from above here!</i>
<div class="row">
<div class="c12">12</div>
</div>
<div class="row">
<div class="c4">4</div>
<div class="c8">8</div>
</div> -
By default there is some space before and after any heading:
You can remove the space by using the class tight
to the heading:
<h1>Level One Heading</h1>
<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>&lt;div class=&quot;msg&quot;&gt; +
By default there is some space before and after any heading:
You can remove the space by using the class tight
to the heading:
<h1>Level One Heading</h1>
<!DOCTYPE html> +<html> +<head> + <meta name="generator" content= + "HTML Tidy for HTML5 for Apple macOS version 5.8.0"> + <title></title> +</head> +<body> + <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>&lt;div class=&quot;msg&quot;&gt; &lt;strong&gt;Alert headline!&lt;/strong&gt; Message text &lt;/div&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>&lt;input type=&quot;text&quot;&gt; -<br />&lt;textarea rows=&quot;3&quot;&gt; -<br />&lt;span class=&quot;addon&quot;&gt;$&lt;/span&gt;&lt;input type=&quot;text&quot;&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>&lt;/span&gt;</code> and <code>&lt;input&gt;</code> tags. Example: <pre>... &lt;/span&gt; &lt;input ...</pre> -<span class="addon">$</span> -<input class="smooth" type="text" /> -<pre>... &lt;/span&gt;&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>&lt;nav class=&quot;nav&quot; tabindex=&quot;-1&quot; onclick=&quot;this.focus()&quot;&gt; + <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>&lt;input type=&quot;text&quot;&gt; +<br>&lt;textarea rows=&quot;3&quot;&gt; +<br>&lt;span class=&quot;addon&quot;&gt;$&lt;/span&gt;&lt;input type=&quot;text&quot;&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>&lt;/span&gt;</code> and + <code>&lt;input&gt;</code> tags. Example: + <pre>... &lt;/span&gt; &lt;input ...</pre><span class="addon">$</span><input class="smooth" + type="text"> + <pre>... &lt;/span&gt;&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>&lt;nav class=&quot;nav&quot; tabindex=&quot;-1&quot; onclick=&quot;this.focus()&quot;&gt; &lt;div class=&quot;container&quot;&gt; &lt;a class=&quot;pagename current&quot; href=&quot;#&quot;&gt;BRUT&lt;/a&gt; &lt;a href=&quot;#&quot;&gt;One&lt;/a&gt; @@ -332,42 +372,41 @@ you should stick to the "Android Safe" set. &lt;/div&gt; &lt;/nav&gt; &lt;button class=&quot;btn-close btn sm&quot;&gt;×&lt;/button&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>&lt;table class=&quot;table&quot;&gt; + </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>&lt;table class=&quot;table&quot;&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;#&lt;/th&gt; @@ -390,112 +429,168 @@ you should stick to the "Android Safe" set. &lt;/tbody&gt; &lt;/table&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 &quot;Android Safe&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 &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.) -</div> -</div> -</div> -</div> -<pre>&lt;i class=&quot;ico&quot;&gt;Copy and paste icons from above here!&lt;/i&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>&lt;div class=&quot;row&quot;&gt;<br /> &lt;div class=&quot;c12&quot;&gt;12&lt;/div&gt;<br />&lt;/div&gt; -<br />&lt;div class=&quot;row&quot;&gt;<br /> &lt;div class=&quot;c4&quot;&gt;4&lt;/div&gt;<br /> &lt;div class=&quot;c8&quot;&gt;8&lt;/div&gt;<br />&lt;/div&gt; + </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 &quot;Android Safe&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 &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.) + </div> + </div> + </div> + </div> + <pre>&lt;i class=&quot;ico&quot;&gt;Copy and paste icons from above here!&lt;/i&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>&lt;div class=&quot;row&quot;&gt;<br> &lt;div class=&quot;c12&quot;&gt;12&lt;/div&gt;<br>&lt;/div&gt; +<br>&lt;div class=&quot;row&quot;&gt;<br> &lt;div class=&quot;c4&quot;&gt;4&lt;/div&gt;<br> &lt;div class=&quot;c8&quot;&gt;8&lt;/div&gt;<br>&lt;/div&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>&lt;h1&gt;Level One Heading&lt;/h1&gt;</pre> -</div> -</div>