Compare commits

..

No commits in common. "develop" and "1.0.2" have entirely different histories.

7 changed files with 556 additions and 599 deletions

View File

@ -14,4 +14,3 @@ COPY --from=build /app/dist /usr/share/nginx/html/dist
COPY src /usr/share/nginx/html/src COPY src /usr/share/nginx/html/src
COPY index.html /usr/share/nginx/html COPY index.html /usr/share/nginx/html
COPY wave.webp /usr/share/nginx/html COPY wave.webp /usr/share/nginx/html
COPY favicon.webp /usr/share/nginx/html

View File

@ -20,7 +20,7 @@
--- ---
<div> <div>
<a href="https://css.zakscode.com" target="_blank">Documentation</a> <a href="https://git.zakscode.com/ztimson/css-utils/wiki" target="_blank">Documentation</a>
<a href="https://git.zakscode.com/ztimson/css-utils/releases" target="_blank">Release Notes</a> <a href="https://git.zakscode.com/ztimson/css-utils/releases" target="_blank">Release Notes</a>
<a href="https://git.zakscode.com/ztimson/css-utils/issues/new?template=.github%2fissue_template%2fbug.md" target="_blank">Report a Bug</a> <a href="https://git.zakscode.com/ztimson/css-utils/issues/new?template=.github%2fissue_template%2fbug.md" target="_blank">Report a Bug</a>
<a href="https://git.zakscode.com/ztimson/css-utils/issues/new?template=.github%2fissue_template%2fenhancement.md" target="_blank">Request a Feature</a> <a href="https://git.zakscode.com/ztimson/css-utils/issues/new?template=.github%2fissue_template%2fenhancement.md" target="_blank">Request a Feature</a>
@ -36,7 +36,7 @@
- [Setup](#setup) - [Setup](#setup)
- [Production](#production) - [Production](#production)
- [Development](#development) - [Development](#development)
- [Documentation](https://css.zakscode.com) - [Documentation](#documentation)
- [License](#license) - [License](#license)
## About ## About
@ -83,9 +83,6 @@ Some extra classes have been added and a few class name changed to match convent
</details> </details>
## Documentation
https://css.zaskscode.com
## License ## License
Copyright © 2023 Zakary Timson | Available under MIT Licensing Copyright © 2023 Zakary Timson | Available under MIT Licensing

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@ -6,29 +6,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" class="momentum-description" content="Enterprise Resource Planning" /> <meta name="description" class="momentum-description" content="Enterprise Resource Planning" />
<title>@ztimson/css-utils</title> <title>CSS Utils</title>
<link href="/favicon.webp" rel="icon">
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
<link href="./dist/css-utils.css" rel="stylesheet"> <link href="./dist/css-utils.css" rel="stylesheet">
<style> <style>
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-thumb {
width: 6px;
height: 6px;
margin: 0 1px;
border-radius: 3px;
background: #777;
cursor: pointer;
}
::-webkit-scrollbar-corner {
background: rgba(0,0,0,0);
}
* { * {
font-family: Roboto, sans-serif !important; font-family: Roboto, sans-serif !important;
scroll-behavior: smooth; scroll-behavior: smooth;
@ -50,14 +33,11 @@
} }
.animate-example.animated { .animate-example.animated {
left: 110px;
background: var(--theme-accent); background: var(--theme-accent);
transform: rotate(180deg); transform: rotate(180deg);
opacity: 25%; opacity: 25%;
} }
.animate-example.animated.animate,
.animate-example.animated.animate-pos {
left: 110px;
}
.box { .box {
width: 20px; width: 20px;
@ -69,7 +49,6 @@
display: inline-block; display: inline-block;
padding: 5px; padding: 5px;
background: #f3f3f3; background: #f3f3f3;
word-break: break-word;
} }
</style> </style>
@ -78,9 +57,9 @@
<script>hljs.highlightAll();</script> <script>hljs.highlightAll();</script>
</head> </head>
<body class="theme-light p-4 flex-r justify-center"> <body class="theme-light p-3 flex-r justify-center">
<div class="clamp flex-c z-1"> <div class="clamp flex-c z-1">
<div id="top" class="flex-grow-1 bg-container shadow p-3"> <div id="top" class="flex-grow-1 bg-clear shadow p-3">
<h1 class="mb-0">@ztimson/css-utils</h1> <h1 class="mb-0">@ztimson/css-utils</h1>
<hr class="mb-3"> <hr class="mb-3">
<p>CSS Utils is a css library based on bootstrap. At 1/3 the size, its all the utilities without the bloat.</p> <p>CSS Utils is a css library based on bootstrap. At 1/3 the size, its all the utilities without the bloat.</p>
@ -88,7 +67,7 @@
</div> </div>
<h2 id="setup" class="mt-4 mb-3">Setup</h2> <h2 id="setup" class="mt-4 mb-3">Setup</h2>
<div class="flex-grow-1 bg-container shadow p-3"> <div class="flex-grow-1 bg-clear shadow p-3">
<h3 id="install">Install</h3> <h3 id="install">Install</h3>
<h4>NPM</h4> <h4>NPM</h4>
<pre><code class="language-scss"> <pre><code class="language-scss">
@ -109,7 +88,7 @@ npm install @ztimson/css-utils
&lt;link rel="stylesheet" href="https://css.zakscode.com/src/main.scss" &gt;&lt;/link&gt; &lt;link rel="stylesheet" href="https://css.zakscode.com/src/main.scss" &gt;&lt;/link&gt;
</code></pre> </code></pre>
</div> </div>
<div class="flex-grow-1 bg-container shadow p-3 mt-4"> <div class="flex-grow-1 bg-clear shadow p-3 mt-4">
<h3 id="theming">Theming</h3> <h3 id="theming">Theming</h3>
<p>Theming is minimal since its so opinionated. Its all done through CSS variables allowing runtime manipulation without having to recompile.</p> <p>Theming is minimal since its so opinionated. Its all done through CSS variables allowing runtime manipulation without having to recompile.</p>
<pre><code class="language-scss"> <pre><code class="language-scss">
@ -157,7 +136,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
<h2 id="utilities" class="mt-4 mb-3">Utilities</h2> <h2 id="utilities" class="mt-4 mb-3">Utilities</h2>
<div class="flex-grow-1 bg-container shadow p-3"> <div class="flex-grow-1 bg-clear shadow p-3">
<h3 id="alignment">Alignment</h3> <h3 id="alignment">Alignment</h3>
<div class="inline-code">.align-[x|y]-[xs|sm|md|lg|xl]-[start|end]</div> <div class="inline-code">.align-[x|y]-[xs|sm|md|lg|xl]-[start|end]</div>
<br><br> <br><br>
@ -190,7 +169,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="animations">Animations</h3> <h3 id="animations">Animations</h3>
<div class="inline-code">.animate-[color|none|opacity|pos|trans]</div> <div class="inline-code">.animate-[color|none|opacity|pos|trans]</div>
<br><br> <br><br>
@ -254,7 +233,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</script> </script>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="borders">Borders</h3> <h3 id="borders">Borders</h3>
<h4 class="fs-3">Color</h4> <h4 class="fs-3">Color</h4>
<div class="inline-code">.b-[accent|black|danger|info|muted|primary|success|text|warn|white]</div> <div class="inline-code">.b-[accent|black|danger|info|muted|primary|success|text|warn|white]</div>
@ -316,7 +295,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="colors">Colors</h3> <h3 id="colors">Colors</h3>
<h4 class="fs-3">Background</h4> <h4 class="fs-3">Background</h4>
<div class="inline-code">.bg-[accent|backdrop|black|clear|danger|info|muted|primary|success|transparent|text|warn|white]</div> <div class="inline-code">.bg-[accent|backdrop|black|clear|danger|info|muted|primary|success|transparent|text|warn|white]</div>
@ -325,7 +304,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
<div class="b-1 bg-accent m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-accent</div> <div class="b-1 bg-accent m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-accent</div>
<div class="b-1 bg-backdrop m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-backdrop</div> <div class="b-1 bg-backdrop m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-backdrop</div>
<div class="b-1 bg-black fg-white m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-black</div> <div class="b-1 bg-black fg-white m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-black</div>
<div class="b-1 bg-container m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-container</div> <div class="b-1 bg-clear m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-clear</div>
<div class="b-1 bg-danger m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-danger</div> <div class="b-1 bg-danger m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-danger</div>
<div class="b-1 bg-info m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-info</div> <div class="b-1 bg-info m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-info</div>
<div class="b-1 bg-muted m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-muted</div> <div class="b-1 bg-muted m-2 p-2 inline-code flex-r align-items-center justify-center">.bg-muted</div>
@ -371,7 +350,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="cursors">Cursors</h3> <h3 id="cursors">Cursors</h3>
<div class="inline-code">.curs-[alias|auto|cell|col-resize|copy|crosshair|default|grab|grabbing|help|hover|move|not-allowed|pointer|progress|row-resize|text|none|wait|vertical-text|zoom-in|zoom-out]</div> <div class="inline-code">.curs-[alias|auto|cell|col-resize|copy|crosshair|default|grab|grabbing|help|hover|move|not-allowed|pointer|progress|row-resize|text|none|wait|vertical-text|zoom-in|zoom-out]</div>
<br><br> <br><br>
@ -401,12 +380,12 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="display">Display</h3> <h3 id="display">Display</h3>
<div class="inline-code">.d-[xs|sm|md|lg|xl]-[block|flex|grid|inline|inline-block|inline-flex|inline-grid|none|table|table-cell|table-row]</div> <div class="inline-code">.d-[xs|sm|md|lg|xl]-[block|flex|grid|inline|inline-block|inline-flex|inline-grid|none|table|table-cell|table-row]</div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="flex">Flex</h3> <h3 id="flex">Flex</h3>
<h4>Direction</h4> <h4>Direction</h4>
<div class="inline-code">.flex-[xs|sm|md|lg|xl]-[c|r|rc|rr]</div> <div class="inline-code">.flex-[xs|sm|md|lg|xl]-[c|r|rc|rr]</div>
@ -575,7 +554,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="float">Float</h3> <h3 id="float">Float</h3>
<div class="inline-code">.float-[xs|sm|md|lg|xl]-[end|none|start]</div> <div class="inline-code">.float-[xs|sm|md|lg|xl]-[end|none|start]</div>
<br><br> <br><br>
@ -586,15 +565,15 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="font">Font Style</h3> <h3 id="font">Font Style</h3>
<h4>Decoration</h4> <h4>Decoration</h4>
<div class="inline-code">.fs-[italic|none|strike|underline]</div> <div class="inline-code">.fs-[italic|line-through|none|underline]</div>
<br><br> <br><br>
<div> <div>
<span class="fs-italic inline-code b-1 p-2">.fs-italic</span> <span class="fs-italic inline-code b-1 p-2">.fs-italic</span>
<span class="fs-line-through inline-code b-1 p-2">.fs-line-through</span>
<span class="fs-none inline-code b-1 p-2">.fs-none</span> <span class="fs-none inline-code b-1 p-2">.fs-none</span>
<span class="fs-strike inline-code b-1 p-2">.fs-strike</span>
<span class="fs-underline inline-code b-1 p-2">.fs-underline</span> <span class="fs-underline inline-code b-1 p-2">.fs-underline</span>
</div> </div>
<br> <br>
@ -654,7 +633,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="hover">Hover</h3> <h3 id="hover">Hover</h3>
<div class="inline-code">.curs-hover|.hover</div> <div class="inline-code">.curs-hover|.hover</div>
<br><br> <br><br>
@ -664,7 +643,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="object-fit">Object Fit</h3> <h3 id="object-fit">Object Fit</h3>
<div class="inline-code">.fit-[contain|cover|fill|scale|none]</div> <div class="inline-code">.fit-[contain|cover|fill|scale|none]</div>
<br><br> <br><br>
@ -692,37 +671,35 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<div class="overflow-hidden p-3"> <h3 id="overflow">Overflow</h3>
<h3 id="overflow">Overflow</h3> <div class="inline-code">.overflow-[x|y]-[auto|hidden|scroll|visible]</div>
<div class="inline-code">.overflow-[x|y]-[auto|hidden|scroll|visible]</div> <br><br>
<br><br> <div class="flex-r">
<div class="flex-r"> <div class="b-1 m-2 overflow-auto" style="width: 150px; height: 150px;">
<div class="b-1 m-2 overflow-auto" style="width: 150px; height: 150px;"> <div style="width: 300px; height: 300px;" class="pos-rel">
<div style="width: 300px; height: 300px;" class="pos-rel"> <span class="pos-abs" style="left: 50%; top: 25%; transform: translate(-50%, -50%)">.overflow-auto</span>
<span class="pos-abs" style="left: 50%; top: 25%; transform: translate(-50%, -50%)">.overflow-auto</span>
</div>
</div> </div>
<div class="b-1 m-2 overflow-hidden" style="width: 150px; height: 150px;"> </div>
<div style="width: 300px; height: 300px;" class="pos-rel"> <div class="b-1 m-2 overflow-hidden" style="width: 150px; height: 150px;">
<span class="pos-abs" style="left: 50%; top: 25%; transform: translate(-50%, -50%)">.overflow-hidden</span> <div style="width: 300px; height: 300px;" class="pos-rel">
</div> <span class="pos-abs" style="left: 50%; top: 25%; transform: translate(-50%, -50%)">.overflow-hidden</span>
</div> </div>
<div class="b-1 m-2 overflow-scroll" style="width: 150px; height: 150px;"> </div>
<div style="width: 300px; height: 300px;" class="pos-rel"> <div class="b-1 m-2 overflow-scroll" style="width: 150px; height: 150px;">
<span class="pos-abs" style="left: 50%; top: 25%; transform: translate(-50%, -50%)">.overflow-scroll</span> <div style="width: 300px; height: 300px;" class="pos-rel">
</div> <span class="pos-abs" style="left: 50%; top: 25%; transform: translate(-50%, -50%)">.overflow-scroll</span>
</div> </div>
<div class="b-1 m-2 overflow-visible" style="width: 150px; height: 150px;"> </div>
<div style="width: 300px; height: 300px;" class="pos-rel"> <div class="b-1 m-2 overflow-visible" style="width: 150px; height: 150px;">
<span class="pos-abs" style="left: 50%; top: 25%; transform: translate(-50%, -50%)">.overflow-visible</span> <div style="width: 300px; height: 300px;" class="pos-rel">
</div> <span class="pos-abs" style="left: 50%; top: 25%; transform: translate(-50%, -50%)">.overflow-visible</span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="opacity">Opacity</h3> <h3 id="opacity">Opacity</h3>
<div class="inline-code">.opacity-[0|10|20|25|30|33|34|40|50|60|66|70|75|80|90|100]</div> <div class="inline-code">.opacity-[0|10|20|25|30|33|34|40|50|60|66|70|75|80|90|100]</div>
<br><br> <br><br>
@ -741,7 +718,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="position">Position</h3> <h3 id="position">Position</h3>
<div class="inline-code">.pos-[abs|rel|static|stick]</div> <div class="inline-code">.pos-[abs|rel|static|stick]</div>
<br><br> <br><br>
@ -769,7 +746,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="shadows">Shadows</h3> <h3 id="shadows">Shadows</h3>
<div class="inline-code">.shadow-[drop|none|white]</div> <div class="inline-code">.shadow-[drop|none|white]</div>
<br><br> <br><br>
@ -786,7 +763,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="size">Size</h3> <h3 id="size">Size</h3>
<div class="flex-c flex-md-r"> <div class="flex-c flex-md-r">
<div class="flex-fill-even"> <div class="flex-fill-even">
@ -868,7 +845,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="spacing">Spacing</h3> <h3 id="spacing">Spacing</h3>
<div>Margin: <span class="inline-code">.m[b|e|s|t|x|y]-[xs|sm|md|lg|xl]-[0-5|auto]</span></div> <div>Margin: <span class="inline-code">.m[b|e|s|t|x|y]-[xs|sm|md|lg|xl]-[0-5|auto]</span></div>
<br> <br>
@ -919,7 +896,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="uer-select">User Select</h3> <h3 id="uer-select">User Select</h3>
<div class="inline-code">.select-[all|auto|none|text]</div> <div class="inline-code">.select-[all|auto|none|text]</div>
<br><br> <br><br>
@ -929,7 +906,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
<div class="select-text inline-code b-1 p-2">.select-text</div> <div class="select-text inline-code b-1 p-2">.select-text</div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3">
<h3 id="visibility">Visibility</h3> <h3 id="visibility">Visibility</h3>
<div class="inline-code">.[hidden|visible]-[xs|sm|md|lg|xl]</div> <div class="inline-code">.[hidden|visible]-[xs|sm|md|lg|xl]</div>
<br><br> <br><br>
@ -941,7 +918,7 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</div> </div>
</div> </div>
<div class="mt-4 flex-grow-1 bg-container shadow p-3 mb-3"> <div class="mt-4 flex-grow-1 bg-clear shadow p-3 mb-3">
<h3 id="z-index">Z-Index</h3> <h3 id="z-index">Z-Index</h3>
<div class="inline-code">.z-[0-5]</div> <div class="inline-code">.z-[0-5]</div>
<br><br> <br><br>
@ -960,7 +937,10 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
<div class="w-100 p-2"></div> <div class="w-100 p-2"></div>
</div> </div>
<div id="toc" class="flex-r shadow bg-container z-5 pos-fix animate b-1" style="left: 0; top: 25px; transform: translateX(calc(-100% + 26px))"> <div id="toc" class="flex-r shadow bg-clear z-5 pos-fix animate b-1" style="right: 0; top: 50px; transform: translateX(calc(100% - 26px))">
<div id="toc-toggle" class="curs-hover b-0 be-1 px-1 py-3 bg-backdrop" style="writing-mode: vertical-rl">
Table of Contents
</div>
<div class="p-3 overflow-y-auto" style="max-height: 50vh;"> <div class="p-3 overflow-y-auto" style="max-height: 50vh;">
<ul class="p-0"> <ul class="p-0">
<li> <li>
@ -1002,16 +982,13 @@ $sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5re
</li> </li>
</ul> </ul>
</div> </div>
<div id="toc-toggle" class="curs-hover b-0 be-1 px-1 py-3 bg-primary fg-white" style="writing-mode: vertical-rl">
Table of Contents
</div>
</div> </div>
<script> <script>
let open = false; let open = false;
const toc = document.querySelector('#toc') const toc = document.querySelector('#toc')
document.querySelector('#toc-toggle').onclick = () => { document.querySelector('#toc-toggle').onclick = () => {
if(open) toc.style.transform = 'translateX(calc(-100% + 26px))'; if(open) toc.style.transform = 'translateX(calc(100% - 26px))';
else toc.style.transform = 'translateX(0)'; else toc.style.transform = 'translateX(0)';
open = !open; open = !open;
} }

955
package-lock.json generated
View File

@ -1,494 +1,465 @@
{ {
"name": "@ztimson/css-utils", "name": "@ztimson/css-utils",
"version": "1.2.1", "version": "1.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@ztimson/css-utils", "name": "@ztimson/css-utils",
"version": "1.2.1", "version": "1.0.0",
"license": "MIT", "license": "MIT",
"devDependencies": { "dependencies": {
"sass": "^1.80.6" "sass": "^1.80.6"
} }
}, },
"node_modules/@parcel/watcher": { "node_modules/@parcel/watcher": {
"version": "2.5.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz",
"integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==",
"dev": true, "hasInstallScript": true,
"hasInstallScript": true, "optional": true,
"optional": true, "dependencies": {
"dependencies": { "detect-libc": "^1.0.3",
"detect-libc": "^1.0.3", "is-glob": "^4.0.3",
"is-glob": "^4.0.3", "micromatch": "^4.0.5",
"micromatch": "^4.0.5", "node-addon-api": "^7.0.0"
"node-addon-api": "^7.0.0" },
}, "engines": {
"engines": { "node": ">= 10.0.0"
"node": ">= 10.0.0" },
}, "funding": {
"funding": { "type": "opencollective",
"type": "opencollective", "url": "https://opencollective.com/parcel"
"url": "https://opencollective.com/parcel" },
}, "optionalDependencies": {
"optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.0",
"@parcel/watcher-android-arm64": "2.5.0", "@parcel/watcher-darwin-arm64": "2.5.0",
"@parcel/watcher-darwin-arm64": "2.5.0", "@parcel/watcher-darwin-x64": "2.5.0",
"@parcel/watcher-darwin-x64": "2.5.0", "@parcel/watcher-freebsd-x64": "2.5.0",
"@parcel/watcher-freebsd-x64": "2.5.0", "@parcel/watcher-linux-arm-glibc": "2.5.0",
"@parcel/watcher-linux-arm-glibc": "2.5.0", "@parcel/watcher-linux-arm-musl": "2.5.0",
"@parcel/watcher-linux-arm-musl": "2.5.0", "@parcel/watcher-linux-arm64-glibc": "2.5.0",
"@parcel/watcher-linux-arm64-glibc": "2.5.0", "@parcel/watcher-linux-arm64-musl": "2.5.0",
"@parcel/watcher-linux-arm64-musl": "2.5.0", "@parcel/watcher-linux-x64-glibc": "2.5.0",
"@parcel/watcher-linux-x64-glibc": "2.5.0", "@parcel/watcher-linux-x64-musl": "2.5.0",
"@parcel/watcher-linux-x64-musl": "2.5.0", "@parcel/watcher-win32-arm64": "2.5.0",
"@parcel/watcher-win32-arm64": "2.5.0", "@parcel/watcher-win32-ia32": "2.5.0",
"@parcel/watcher-win32-ia32": "2.5.0", "@parcel/watcher-win32-x64": "2.5.0"
"@parcel/watcher-win32-x64": "2.5.0" }
} },
}, "node_modules/@parcel/watcher-android-arm64": {
"node_modules/@parcel/watcher-android-arm64": { "version": "2.5.0",
"version": "2.5.0", "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz",
"resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==",
"integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", "cpu": [
"cpu": [ "arm64"
"arm64" ],
], "optional": true,
"dev": true, "os": [
"optional": true, "android"
"os": [ ],
"android" "engines": {
], "node": ">= 10.0.0"
"engines": { },
"node": ">= 10.0.0" "funding": {
}, "type": "opencollective",
"funding": { "url": "https://opencollective.com/parcel"
"type": "opencollective", }
"url": "https://opencollective.com/parcel" },
} "node_modules/@parcel/watcher-darwin-arm64": {
}, "version": "2.5.0",
"node_modules/@parcel/watcher-darwin-arm64": { "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz",
"version": "2.5.0", "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==",
"resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", "cpu": [
"integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", "arm64"
"cpu": [ ],
"arm64" "optional": true,
], "os": [
"dev": true, "darwin"
"optional": true, ],
"os": [ "engines": {
"darwin" "node": ">= 10.0.0"
], },
"engines": { "funding": {
"node": ">= 10.0.0" "type": "opencollective",
}, "url": "https://opencollective.com/parcel"
"funding": { }
"type": "opencollective", },
"url": "https://opencollective.com/parcel" "node_modules/@parcel/watcher-darwin-x64": {
} "version": "2.5.0",
}, "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz",
"node_modules/@parcel/watcher-darwin-x64": { "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==",
"version": "2.5.0", "cpu": [
"resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", "x64"
"integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", ],
"cpu": [ "optional": true,
"x64" "os": [
], "darwin"
"dev": true, ],
"optional": true, "engines": {
"os": [ "node": ">= 10.0.0"
"darwin" },
], "funding": {
"engines": { "type": "opencollective",
"node": ">= 10.0.0" "url": "https://opencollective.com/parcel"
}, }
"funding": { },
"type": "opencollective", "node_modules/@parcel/watcher-freebsd-x64": {
"url": "https://opencollective.com/parcel" "version": "2.5.0",
} "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz",
}, "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==",
"node_modules/@parcel/watcher-freebsd-x64": { "cpu": [
"version": "2.5.0", "x64"
"resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", ],
"integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", "optional": true,
"cpu": [ "os": [
"x64" "freebsd"
], ],
"dev": true, "engines": {
"optional": true, "node": ">= 10.0.0"
"os": [ },
"freebsd" "funding": {
], "type": "opencollective",
"engines": { "url": "https://opencollective.com/parcel"
"node": ">= 10.0.0" }
}, },
"funding": { "node_modules/@parcel/watcher-linux-arm-glibc": {
"type": "opencollective", "version": "2.5.0",
"url": "https://opencollective.com/parcel" "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz",
} "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==",
}, "cpu": [
"node_modules/@parcel/watcher-linux-arm-glibc": { "arm"
"version": "2.5.0", ],
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", "optional": true,
"integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", "os": [
"cpu": [ "linux"
"arm" ],
], "engines": {
"dev": true, "node": ">= 10.0.0"
"optional": true, },
"os": [ "funding": {
"linux" "type": "opencollective",
], "url": "https://opencollective.com/parcel"
"engines": { }
"node": ">= 10.0.0" },
}, "node_modules/@parcel/watcher-linux-arm-musl": {
"funding": { "version": "2.5.0",
"type": "opencollective", "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz",
"url": "https://opencollective.com/parcel" "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==",
} "cpu": [
}, "arm"
"node_modules/@parcel/watcher-linux-arm-musl": { ],
"version": "2.5.0", "optional": true,
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", "os": [
"integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", "linux"
"cpu": [ ],
"arm" "engines": {
], "node": ">= 10.0.0"
"dev": true, },
"optional": true, "funding": {
"os": [ "type": "opencollective",
"linux" "url": "https://opencollective.com/parcel"
], }
"engines": { },
"node": ">= 10.0.0" "node_modules/@parcel/watcher-linux-arm64-glibc": {
}, "version": "2.5.0",
"funding": { "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz",
"type": "opencollective", "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==",
"url": "https://opencollective.com/parcel" "cpu": [
} "arm64"
}, ],
"node_modules/@parcel/watcher-linux-arm64-glibc": { "optional": true,
"version": "2.5.0", "os": [
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", "linux"
"integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", ],
"cpu": [ "engines": {
"arm64" "node": ">= 10.0.0"
], },
"dev": true, "funding": {
"optional": true, "type": "opencollective",
"os": [ "url": "https://opencollective.com/parcel"
"linux" }
], },
"engines": { "node_modules/@parcel/watcher-linux-arm64-musl": {
"node": ">= 10.0.0" "version": "2.5.0",
}, "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz",
"funding": { "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==",
"type": "opencollective", "cpu": [
"url": "https://opencollective.com/parcel" "arm64"
} ],
}, "optional": true,
"node_modules/@parcel/watcher-linux-arm64-musl": { "os": [
"version": "2.5.0", "linux"
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", ],
"integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", "engines": {
"cpu": [ "node": ">= 10.0.0"
"arm64" },
], "funding": {
"dev": true, "type": "opencollective",
"optional": true, "url": "https://opencollective.com/parcel"
"os": [ }
"linux" },
], "node_modules/@parcel/watcher-linux-x64-glibc": {
"engines": { "version": "2.5.0",
"node": ">= 10.0.0" "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz",
}, "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==",
"funding": { "cpu": [
"type": "opencollective", "x64"
"url": "https://opencollective.com/parcel" ],
} "optional": true,
}, "os": [
"node_modules/@parcel/watcher-linux-x64-glibc": { "linux"
"version": "2.5.0", ],
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", "engines": {
"integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", "node": ">= 10.0.0"
"cpu": [ },
"x64" "funding": {
], "type": "opencollective",
"dev": true, "url": "https://opencollective.com/parcel"
"optional": true, }
"os": [ },
"linux" "node_modules/@parcel/watcher-linux-x64-musl": {
], "version": "2.5.0",
"engines": { "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz",
"node": ">= 10.0.0" "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==",
}, "cpu": [
"funding": { "x64"
"type": "opencollective", ],
"url": "https://opencollective.com/parcel" "optional": true,
} "os": [
}, "linux"
"node_modules/@parcel/watcher-linux-x64-musl": { ],
"version": "2.5.0", "engines": {
"resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", "node": ">= 10.0.0"
"integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", },
"cpu": [ "funding": {
"x64" "type": "opencollective",
], "url": "https://opencollective.com/parcel"
"dev": true, }
"optional": true, },
"os": [ "node_modules/@parcel/watcher-win32-arm64": {
"linux" "version": "2.5.0",
], "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz",
"engines": { "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==",
"node": ">= 10.0.0" "cpu": [
}, "arm64"
"funding": { ],
"type": "opencollective", "optional": true,
"url": "https://opencollective.com/parcel" "os": [
} "win32"
}, ],
"node_modules/@parcel/watcher-win32-arm64": { "engines": {
"version": "2.5.0", "node": ">= 10.0.0"
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", },
"integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", "funding": {
"cpu": [ "type": "opencollective",
"arm64" "url": "https://opencollective.com/parcel"
], }
"dev": true, },
"optional": true, "node_modules/@parcel/watcher-win32-ia32": {
"os": [ "version": "2.5.0",
"win32" "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz",
], "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==",
"engines": { "cpu": [
"node": ">= 10.0.0" "ia32"
}, ],
"funding": { "optional": true,
"type": "opencollective", "os": [
"url": "https://opencollective.com/parcel" "win32"
} ],
}, "engines": {
"node_modules/@parcel/watcher-win32-ia32": { "node": ">= 10.0.0"
"version": "2.5.0", },
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", "funding": {
"integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", "type": "opencollective",
"cpu": [ "url": "https://opencollective.com/parcel"
"ia32" }
], },
"dev": true, "node_modules/@parcel/watcher-win32-x64": {
"optional": true, "version": "2.5.0",
"os": [ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz",
"win32" "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==",
], "cpu": [
"engines": { "x64"
"node": ">= 10.0.0" ],
}, "optional": true,
"funding": { "os": [
"type": "opencollective", "win32"
"url": "https://opencollective.com/parcel" ],
} "engines": {
}, "node": ">= 10.0.0"
"node_modules/@parcel/watcher-win32-x64": { },
"version": "2.5.0", "funding": {
"resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", "type": "opencollective",
"integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", "url": "https://opencollective.com/parcel"
"cpu": [ }
"x64" },
], "node_modules/braces": {
"dev": true, "version": "3.0.3",
"optional": true, "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"os": [ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"win32" "optional": true,
], "dependencies": {
"engines": { "fill-range": "^7.1.1"
"node": ">= 10.0.0" },
}, "engines": {
"funding": { "node": ">=8"
"type": "opencollective", }
"url": "https://opencollective.com/parcel" },
} "node_modules/chokidar": {
}, "version": "4.0.1",
"node_modules/braces": { "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
"version": "3.0.3", "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "dependencies": {
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "readdirp": "^4.0.1"
"dev": true, },
"optional": true, "engines": {
"dependencies": { "node": ">= 14.16.0"
"fill-range": "^7.1.1" },
}, "funding": {
"engines": { "url": "https://paulmillr.com/funding/"
"node": ">=8" }
} },
}, "node_modules/detect-libc": {
"node_modules/chokidar": { "version": "1.0.3",
"version": "4.0.1", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
"integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", "optional": true,
"dev": true, "bin": {
"dependencies": { "detect-libc": "bin/detect-libc.js"
"readdirp": "^4.0.1" },
}, "engines": {
"engines": { "node": ">=0.10"
"node": ">= 14.16.0" }
}, },
"funding": { "node_modules/fill-range": {
"url": "https://paulmillr.com/funding/" "version": "7.1.1",
} "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
}, "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"node_modules/detect-libc": { "optional": true,
"version": "1.0.3", "dependencies": {
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "to-regex-range": "^5.0.1"
"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", },
"dev": true, "engines": {
"optional": true, "node": ">=8"
"bin": { }
"detect-libc": "bin/detect-libc.js" },
}, "node_modules/immutable": {
"engines": { "version": "4.3.7",
"node": ">=0.10" "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz",
} "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw=="
}, },
"node_modules/fill-range": { "node_modules/is-extglob": {
"version": "7.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true, "optional": true,
"optional": true, "engines": {
"dependencies": { "node": ">=0.10.0"
"to-regex-range": "^5.0.1" }
}, },
"engines": { "node_modules/is-glob": {
"node": ">=8" "version": "4.0.3",
} "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
}, "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"node_modules/immutable": { "optional": true,
"version": "4.3.7", "dependencies": {
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", "is-extglob": "^2.1.1"
"integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", },
"dev": true "engines": {
}, "node": ">=0.10.0"
"node_modules/is-extglob": { }
"version": "2.1.1", },
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "node_modules/is-number": {
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "version": "7.0.0",
"dev": true, "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"optional": true, "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"engines": { "optional": true,
"node": ">=0.10.0" "engines": {
} "node": ">=0.12.0"
}, }
"node_modules/is-glob": { },
"version": "4.0.3", "node_modules/micromatch": {
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "version": "4.0.8",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"dev": true, "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"is-extglob": "^2.1.1" "braces": "^3.0.3",
}, "picomatch": "^2.3.1"
"engines": { },
"node": ">=0.10.0" "engines": {
} "node": ">=8.6"
}, }
"node_modules/is-number": { },
"version": "7.0.0", "node_modules/node-addon-api": {
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "version": "7.1.1",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
"dev": true, "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
"optional": true, "optional": true
"engines": { },
"node": ">=0.12.0" "node_modules/picomatch": {
} "version": "2.3.1",
}, "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"node_modules/micromatch": { "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"version": "4.0.8", "optional": true,
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "engines": {
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "node": ">=8.6"
"dev": true, },
"optional": true, "funding": {
"dependencies": { "url": "https://github.com/sponsors/jonschlinkert"
"braces": "^3.0.3", }
"picomatch": "^2.3.1" },
}, "node_modules/readdirp": {
"engines": { "version": "4.0.2",
"node": ">=8.6" "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
} "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
}, "engines": {
"node_modules/node-addon-api": { "node": ">= 14.16.0"
"version": "7.1.1", },
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "funding": {
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "type": "individual",
"dev": true, "url": "https://paulmillr.com/funding/"
"optional": true }
}, },
"node_modules/picomatch": { "node_modules/sass": {
"version": "2.3.1", "version": "1.80.6",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==",
"dev": true, "dependencies": {
"optional": true, "chokidar": "^4.0.0",
"engines": { "immutable": "^4.0.0",
"node": ">=8.6" "source-map-js": ">=0.6.2 <2.0.0"
}, },
"funding": { "bin": {
"url": "https://github.com/sponsors/jonschlinkert" "sass": "sass.js"
} },
}, "engines": {
"node_modules/readdirp": { "node": ">=14.0.0"
"version": "4.0.2", },
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", "optionalDependencies": {
"integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", "@parcel/watcher": "^2.4.1"
"dev": true, }
"engines": { },
"node": ">= 14.16.0" "node_modules/source-map-js": {
}, "version": "1.2.1",
"funding": { "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"type": "individual", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"url": "https://paulmillr.com/funding/" "engines": {
} "node": ">=0.10.0"
}, }
"node_modules/sass": { },
"version": "1.80.6", "node_modules/to-regex-range": {
"resolved": "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz", "version": "5.0.1",
"integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"dev": true, "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dependencies": { "optional": true,
"chokidar": "^4.0.0", "dependencies": {
"immutable": "^4.0.0", "is-number": "^7.0.0"
"source-map-js": ">=0.6.2 <2.0.0" },
}, "engines": {
"bin": { "node": ">=8.0"
"sass": "sass.js" }
}, }
"engines": { }
"node": ">=14.0.0"
},
"optionalDependencies": {
"@parcel/watcher": "^2.4.1"
}
},
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"optional": true,
"dependencies": {
"is-number": "^7.0.0"
},
"engines": {
"node": ">=8.0"
}
}
}
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "@ztimson/css-utils", "name": "@ztimson/css-utils",
"version": "1.3.2", "version": "1.0.2",
"description": "CSS Utility Classes", "description": "CSS Utility Classes",
"readme": "README.md", "readme": "README.md",
"scripts": { "scripts": {

View File

@ -16,7 +16,6 @@
--theme-white: white; --theme-white: white;
// Misc // Misc
--theme-border: black;
--theme-animation: 0.2s linear; // Animation style --theme-animation: 0.2s linear; // Animation style
--theme-content-width: 1100px; // Max width of clamped content --theme-content-width: 1100px; // Max width of clamped content
--theme-font: Arial, sans-serif; --theme-font: Arial, sans-serif;
@ -48,22 +47,30 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
// Optional opinionated styling to clean up CSS defaults // Optional opinionated styling to clean up CSS defaults
.fix-anchor, .fix:not(.no-anchor-fix) { .fix-anchor, .fix {
a, a:not([href]) { a, a:not([href]) {
cursor: pointer;
color: var(--theme-primary); color: var(--theme-primary);
&:not(:hover):not(:focus) { text-decoration: none; } &:not(:hover) { text-decoration: none; }
&:hover, &:focus { text-decoration: underline; } &:hover { text-decoration: underline; }
} }
} }
.fix-button, .fix:not(.no-button-fix) { .fix-button, .fix {
button:not(:disabled) { button:not(:disabled) {
cursor: pointer; cursor: pointer;
} }
} }
.fix-dom, .fix:not(.no-dom-fix) { .fix-code code, code.fix {
display: block;
white-space: pre;
font-family: monospace;
background: rgb(30, 30, 30);
color: #00cb00;
overflow: auto;
}
.fix-dom, .fix {
&, html, body { &, html, body {
height: 100%; height: 100%;
width: 100%; width: 100%;
@ -74,22 +81,29 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
background-color: var(--theme-backdrop); background-color: var(--theme-backdrop);
} }
hr {
border-bottom: 1px solid black;
width: 100%;
opacity: 50%;
}
* { box-sizing: border-box; } * { box-sizing: border-box; }
} }
.fix-focus, .fix:not(.no-focus-fix) { .fix-focus, .fix {
* { * {
outline: inherit; outline: none !important;
-webkit-tap-highlight-color: transparent; box-shadow: none !important;
} }
} }
.fix-font, .fix:not(.no-font-fix) { .fix-font, .fix {
color: var(--theme-text); * { font-family: var(--theme-font), sans-serif; }
font-family: var(--theme-font), sans-serif;
p, input, select, textarea, button { font-size: 1rem; } p, input, select, textarea, button { font-size: 1rem; }
h1, h2, h3, h4, h5, h6, p { margin: 0 0 0.5rem 0; } span { font-size: inherit; }
h1, h2, h3, h4, h5, h6, p {
margin-top: 0;
margin-bottom: 0.5rem;
}
h1 { font-weight: 500; font-size: 2.5rem; } h1 { font-weight: 500; font-size: 2.5rem; }
h2 { font-weight: 500; font-size: 2rem; } h2 { font-weight: 500; font-size: 2rem; }
h3 { font-weight: 500; font-size: 1.75rem; } h3 { font-weight: 500; font-size: 1.75rem; }
@ -98,6 +112,8 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
h6 { font-weight: 500; font-size: 1rem; } h6 { font-weight: 500; font-size: 1rem; }
} }
option { color: black !important; }
// Misc ===================================================================================================== // Misc =====================================================================================================
// Center // Center
@ -111,6 +127,7 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
// Clamp (Restrict page width for large screens) // Clamp (Restrict page width for large screens)
.clamp { width: min(var(--theme-content-width), calc(100% - map.get($sizes, 3))); } .clamp { width: min(var(--theme-content-width), calc(100% - map.get($sizes, 3))); }
// Utilities ================================================================================================ // Utilities ================================================================================================
// Anchor // Anchor
@ -153,7 +170,7 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
.bg-black { background-color: var(--theme-black) !important; } .bg-black { background-color: var(--theme-black) !important; }
.bg-white { background-color: var(--theme-white) !important; } .bg-white { background-color: var(--theme-white) !important; }
.bg-transparent { background-color: transparent !important; } .bg-transparent { background-color: transparent !important; }
.bg-container { .bg-clear {
background-color: var(--theme-clear) !important; background-color: var(--theme-clear) !important;
color: var(--theme-text) !important; color: var(--theme-text) !important;
} }
@ -178,10 +195,7 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
// Colors - Foreground // Colors - Foreground
@each $color in ('black', 'clear', 'white', 'text', 'primary', 'accent', 'info', 'success', 'warn', 'danger', 'muted') { @each $color in ('black', 'clear', 'white', 'text', 'primary', 'accent', 'info', 'success', 'warn', 'danger', 'muted') {
.fg-#{$color} { .fg-#{$color} { color: var(--theme-#{$color}) !important; }
color: var(--theme-#{$color}) !important;
text-decoration-color: var(--theme-#{$color}) !important;
}
} }
// Cursors // Cursors
@ -196,10 +210,9 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
.fs-italic { font-style: italic !important; } .fs-italic { font-style: italic !important; }
.fs-none { font-style: normal !important; } .fs-none { font-style: normal !important; }
.fs-lighter { font-weight: lighter !important; } .fs-lighter { font-weight: lighter !important; }
.fs-line-through { text-decoration: line-through !important; }
.fs-no-dec { text-decoration: none !important; } .fs-no-dec { text-decoration: none !important; }
.fs-strike { text-decoration: line-through !important; }
.fs-underline { text-decoration: underline !important; } .fs-underline { text-decoration: underline !important; }
.fs-strike.fs-underline { text-decoration: line-through underline !important; }
.fs-7 { font-size: 2.5rem !important; } .fs-7 { font-size: 2.5rem !important; }
.fs-6 { font-size: 2.25rem !important; } .fs-6 { font-size: 2.25rem !important; }
.fs-5 { font-size: 2rem !important; } .fs-5 { font-size: 2rem !important; }
@ -401,7 +414,7 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
.hidden#{$bp} { visibility: hidden !important; } .hidden#{$bp} { visibility: hidden !important; }
@each $s, $size in $sizes { @each $s, $size in $sizes {
.b#{$bp}-#{$s} { border: #{$s}px solid var(--theme-border) !important; } // Border .b#{$bp}-#{$s} { border: #{$s}px solid var(--theme-muted) !important; } // Border
.m#{$bp}-#{$s} { margin: $size !important; } // Margin .m#{$bp}-#{$s} { margin: $size !important; } // Margin
.p#{$bp}-#{$s} { padding: $size !important; } // Padding .p#{$bp}-#{$s} { padding: $size !important; } // Padding
.mx#{$bp}-#{$s} { // Margin .mx#{$bp}-#{$s} { // Margin
@ -428,7 +441,7 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
.m#{$d}#{$bp}-auto { margin-#{$dir}: auto !important; } // Margin .m#{$d}#{$bp}-auto { margin-#{$dir}: auto !important; } // Margin
@each $s, $size in $sizes { @each $s, $size in $sizes {
.b#{$d}#{$bp}-#{$s} { border-#{$dir}: #{$s}px solid var(--theme-border) !important; } // Border .b#{$d}#{$bp}-#{$s} { border-#{$dir}: #{$s}px solid var(--theme-muted) !important; } // Border
.m#{$d}#{$bp}-#{$s} { margin-#{$dir}: $size !important; } // Margin .m#{$d}#{$bp}-#{$s} { margin-#{$dir}: $size !important; } // Margin
.p#{$d}#{$bp}-#{$s} { padding-#{$dir}: $size !important; } // Padding .p#{$d}#{$bp}-#{$s} { padding-#{$dir}: $size !important; } // Padding
} }