generated from ztimson/template
Compare commits
No commits in common. "develop" and "1.0.1" have entirely different histories.
9
.github/workflows/build.yaml
vendored
9
.github/workflows/build.yaml
vendored
@ -42,12 +42,3 @@ jobs:
|
||||
uses: ztimson/actions/tag@develop
|
||||
with:
|
||||
tag: ${{env.VERSION}}
|
||||
|
||||
docs:
|
||||
name: Publish CDN & Docs
|
||||
needs: build
|
||||
uses: ztimson/actions/.github/workflows/docker.yaml@develop
|
||||
with:
|
||||
name: ztimson/css-utils
|
||||
repository: ${{github.server_url}}/${{github.repository}}.git
|
||||
pass: ${{secrets.DEPLOY_TOKEN}}
|
||||
|
@ -4,3 +4,4 @@ node_modules
|
||||
.editorconfig
|
||||
.gitignore
|
||||
CODEOWNERS
|
||||
index.html
|
||||
|
17
Dockerfile
17
Dockerfile
@ -1,17 +0,0 @@
|
||||
# Build application
|
||||
FROM node:alpine as build
|
||||
|
||||
RUN mkdir /app
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN if [ ! -d "node_modules" ]; then npm i; fi && \
|
||||
if [ ! -d "dist/css-utils.css" ]; then npm run build; fi
|
||||
|
||||
# Use Nginx to serve
|
||||
FROM nginx:1.23-alpine
|
||||
|
||||
COPY --from=build /app/dist /usr/share/nginx/html/dist
|
||||
COPY src /usr/share/nginx/html/src
|
||||
COPY index.html /usr/share/nginx/html
|
||||
COPY wave.webp /usr/share/nginx/html
|
||||
COPY favicon.webp /usr/share/nginx/html
|
@ -20,7 +20,7 @@
|
||||
|
||||
---
|
||||
<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/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>
|
||||
@ -36,7 +36,7 @@
|
||||
- [Setup](#setup)
|
||||
- [Production](#production)
|
||||
- [Development](#development)
|
||||
- [Documentation](https://css.zakscode.com)
|
||||
- [Documentation](#documentation)
|
||||
- [License](#license)
|
||||
|
||||
## About
|
||||
@ -83,9 +83,6 @@ Some extra classes have been added and a few class name changed to match convent
|
||||
|
||||
</details>
|
||||
|
||||
## Documentation
|
||||
https://css.zaskscode.com
|
||||
|
||||
## License
|
||||
Copyright © 2023 Zakary Timson | Available under MIT Licensing
|
||||
|
||||
|
BIN
favicon.webp
BIN
favicon.webp
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
1015
index.html
1015
index.html
File diff suppressed because it is too large
Load Diff
37
package-lock.json
generated
37
package-lock.json
generated
@ -1,14 +1,14 @@
|
||||
{
|
||||
"name": "@ztimson/css-utils",
|
||||
"version": "1.2.1",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ztimson/css-utils",
|
||||
"version": "1.2.1",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"dependencies": {
|
||||
"sass": "^1.80.6"
|
||||
}
|
||||
},
|
||||
@ -16,7 +16,6 @@
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz",
|
||||
"integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
@ -55,7 +54,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
@ -75,7 +73,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
@ -95,7 +92,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
@ -115,7 +111,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
@ -135,7 +130,6 @@
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
@ -155,7 +149,6 @@
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
@ -175,7 +168,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
@ -195,7 +187,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
@ -215,7 +206,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
@ -235,7 +225,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
@ -255,7 +244,6 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
@ -275,7 +263,6 @@
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
@ -295,7 +282,6 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
@ -312,7 +298,6 @@
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"fill-range": "^7.1.1"
|
||||
@ -325,7 +310,6 @@
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
|
||||
"integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"readdirp": "^4.0.1"
|
||||
},
|
||||
@ -340,7 +324,6 @@
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"detect-libc": "bin/detect-libc.js"
|
||||
@ -353,7 +336,6 @@
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
@ -365,14 +347,12 @@
|
||||
"node_modules/immutable": {
|
||||
"version": "4.3.7",
|
||||
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz",
|
||||
"integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw=="
|
||||
},
|
||||
"node_modules/is-extglob": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
@ -382,7 +362,6 @@
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
||||
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"is-extglob": "^2.1.1"
|
||||
@ -395,7 +374,6 @@
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.12.0"
|
||||
@ -405,7 +383,6 @@
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"braces": "^3.0.3",
|
||||
@ -419,14 +396,12 @@
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
|
||||
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=8.6"
|
||||
@ -439,7 +414,6 @@
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
|
||||
"integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 14.16.0"
|
||||
},
|
||||
@ -452,7 +426,6 @@
|
||||
"version": "1.80.6",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz",
|
||||
"integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"chokidar": "^4.0.0",
|
||||
"immutable": "^4.0.0",
|
||||
@ -472,7 +445,6 @@
|
||||
"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"
|
||||
}
|
||||
@ -481,7 +453,6 @@
|
||||
"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"
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ztimson/css-utils",
|
||||
"version": "1.3.2",
|
||||
"version": "1.0.1",
|
||||
"description": "CSS Utility Classes",
|
||||
"readme": "README.md",
|
||||
"scripts": {
|
||||
|
296
src/main.scss
296
src/main.scss
@ -4,7 +4,7 @@
|
||||
|
||||
// Colors
|
||||
:root {
|
||||
// Theme colors -- what ever you like
|
||||
// Theme colors, what ever you like
|
||||
--theme-backdrop: #dddddd;
|
||||
--theme-primary: #ff0000;
|
||||
--theme-accent: #0000ff;
|
||||
@ -15,8 +15,7 @@
|
||||
--theme-black: black;
|
||||
--theme-white: white;
|
||||
|
||||
// Misc
|
||||
--theme-border: black;
|
||||
// Mic
|
||||
--theme-animation: 0.2s linear; // Animation style
|
||||
--theme-content-width: 1100px; // Max width of clamped content
|
||||
--theme-font: Arial, sans-serif;
|
||||
@ -34,36 +33,46 @@
|
||||
--theme-text: #ffffff; // Text color (Should contrast bg-primary)
|
||||
--theme-muted: #cccccc; // Muted text color (Should have less contrast against bg-primary)
|
||||
}
|
||||
}
|
||||
|
||||
$breakpoints: (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px); // Device size
|
||||
$sizes: (0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5rem); // Padding/Margin, etc...
|
||||
}
|
||||
|
||||
// Don't edit past this point ===============================================================================
|
||||
|
||||
$breakpoints: (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px);
|
||||
$direction: ('s': 'left', 't': 'top', 'e': 'right', 'b': 'bottom');
|
||||
$divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
$divisible: (0, 10, 20, 25, 30, 33, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
$sizes: ('auto': auto, 0: 0, 1: 0.25rem, 2: 0.5rem, 3: 1rem, 4: 1.5rem, 5: 2.5rem);
|
||||
|
||||
// "Fixes" ==================================================================================================
|
||||
|
||||
// Optional opinionated styling to clean up CSS defaults
|
||||
|
||||
.fix-anchor, .fix:not(.no-anchor-fix) {
|
||||
.fix-anchor, .fix {
|
||||
a, a:not([href]) {
|
||||
cursor: pointer;
|
||||
color: var(--theme-primary);
|
||||
&:not(:hover):not(:focus) { text-decoration: none; }
|
||||
&:hover, &:focus { text-decoration: underline; }
|
||||
&:not(:hover) { text-decoration: none; }
|
||||
&:hover { text-decoration: underline; }
|
||||
}
|
||||
}
|
||||
|
||||
.fix-button, .fix:not(.no-button-fix) {
|
||||
button:not(:disabled) {
|
||||
.fix-button, .fix {
|
||||
button {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.fix-dom, .fix:not(.no-dom-fix) {
|
||||
.fix-code, .fix {
|
||||
code {
|
||||
display: block;
|
||||
white-space: pre;
|
||||
font-family: monospace;
|
||||
background: rgb(30, 30, 30);
|
||||
color: #00cb00;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.fix-dom, .fix {
|
||||
&, html, body {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
@ -74,22 +83,25 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
background-color: var(--theme-backdrop);
|
||||
}
|
||||
|
||||
hr { opacity: 50%; }
|
||||
* { box-sizing: border-box; }
|
||||
}
|
||||
|
||||
.fix-focus, .fix:not(.no-focus-fix) {
|
||||
.fix-focus, .fix {
|
||||
* {
|
||||
outline: inherit;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
outline: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.fix-font, .fix:not(.no-font-fix) {
|
||||
color: var(--theme-text);
|
||||
font-family: var(--theme-font), sans-serif;
|
||||
|
||||
.fix-font, .fix {
|
||||
* { font-family: var(--theme-font), sans-serif; }
|
||||
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; }
|
||||
h2 { font-weight: 500; font-size: 2rem; }
|
||||
h3 { font-weight: 500; font-size: 1.75rem; }
|
||||
@ -98,26 +110,10 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
h6 { font-weight: 500; font-size: 1rem; }
|
||||
}
|
||||
|
||||
// Misc =====================================================================================================
|
||||
|
||||
// Center
|
||||
.center {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
// Clamp (Restrict page width for large screens)
|
||||
.clamp { width: min(var(--theme-content-width), calc(100% - map.get($sizes, 3))); }
|
||||
option { color: black !important; }
|
||||
|
||||
// Utilities ================================================================================================
|
||||
|
||||
// Anchor
|
||||
.anchor-c { transform: translate(-50%, -50%); }
|
||||
.anchor-e { transform: translate(-100%, -50%); }
|
||||
.anchor-s { transform: translate(0, -50%); }
|
||||
|
||||
// Animate
|
||||
.animate { transition: var(--theme-animation); }
|
||||
.animate-none { transition: none !important; }
|
||||
@ -125,17 +121,14 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
transition: var(--theme-animation);
|
||||
transition-property: color, background-color;
|
||||
}
|
||||
.animate-opacity {
|
||||
transition: var(--theme-animation);
|
||||
transition-property: opacity;
|
||||
}
|
||||
.animate-pos {
|
||||
transition: var(--theme-animation);
|
||||
transition-property: height, width, left, right, top, bottom;
|
||||
}
|
||||
.animate-trans {
|
||||
transition: var(--theme-animation);
|
||||
transition-property: transform;
|
||||
|
||||
// Border - Colors
|
||||
@each $color in ('black', 'white', 'primary', 'secondary', 'info', 'success', 'warn', 'danger', 'muted') {
|
||||
.b-#{$color} { border-color: var(--theme-#{$color}) !important; }
|
||||
}
|
||||
|
||||
// Border - Radius
|
||||
@ -150,17 +143,17 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
|
||||
// Colors - Background
|
||||
.bg-backdrop { background-color: var(--theme-backdrop) !important; }
|
||||
.bg-black { background-color: var(--theme-black) !important; }
|
||||
.bg-white { background-color: var(--theme-white) !important; }
|
||||
.bg-transparent { background-color: transparent !important; }
|
||||
.bg-container {
|
||||
.bg-black { background-color: var(--theme-white) !important; }
|
||||
.bg-clear {
|
||||
background-color: var(--theme-clear) !important;
|
||||
color: var(--theme-text) !important;
|
||||
}
|
||||
@each $color in ('primary', 'accent', 'text', 'info', 'success', 'warn', 'danger', 'muted') {
|
||||
.bg-transparent { background-color: transparent !important; }
|
||||
.bg-white { background-color: var(--theme-white) !important; }
|
||||
@each $color in ('primary', 'secondary', 'text', 'info', 'success', 'warn', 'danger', 'muted') {
|
||||
.bg-#{$color} {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
color: white;
|
||||
}
|
||||
.bg-#{$color}::before {
|
||||
content: '';
|
||||
@ -170,36 +163,42 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: var(--theme-#{$color});
|
||||
filter: saturate(.5) brightness(150%);
|
||||
opacity: 0.2;
|
||||
border-radius: inherit;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
// Colors - Foreground
|
||||
@each $color in ('black', 'clear', 'white', 'text', 'primary', 'accent', 'info', 'success', 'warn', 'danger', 'muted') {
|
||||
.fg-#{$color} {
|
||||
color: var(--theme-#{$color}) !important;
|
||||
text-decoration-color: var(--theme-#{$color}) !important;
|
||||
// Center
|
||||
.center {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
// Clamp (Restrict page width for large screens)
|
||||
.clamp { width: min(var(--theme-content-width), calc(100% - map.get($sizes, 3))); }
|
||||
|
||||
// Colors - Foreground
|
||||
@each $color in ('black', 'white', 'text', 'primary', 'secondary', 'info', 'success', 'warn', 'danger', 'muted') {
|
||||
.fg-#{$color} { color: var(--theme-#{$color}) !important; }
|
||||
}
|
||||
|
||||
// Cursors
|
||||
@each $name in ('alias','auto','cell','col-resize','copy','crosshair','default','grab','grabbing','help','move','not-allowed','pointer','progress','row-resize','text','none','wait','vertical-text','zoom-in','zoom-out') {
|
||||
@each $name in ('auto', 'default', 'none', 'context-menu', 'help', 'pointer', 'progress', 'wait', 'cell', 'crosshair', 'text', 'vertical-text', 'alias', 'copy', 'move', 'no-drop', 'not-allowed', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'zoom-in', 'zoom-out') {
|
||||
.curs-#{$name} { cursor: #{$name} !important; }
|
||||
}
|
||||
|
||||
// Font
|
||||
.fs-bolder { font-weight: bolder !important; }
|
||||
.fs-bold { font-weight: 500 !important; }
|
||||
.fs-normal { font-weight: normal !important; }
|
||||
.fs-bold { font-weight: bold !important; }
|
||||
.fs-clear { font-style: normal !important; }
|
||||
.fs-italic { font-style: italic !important; }
|
||||
.fs-none { font-style: normal !important; }
|
||||
.fs-lighter { font-weight: lighter !important; }
|
||||
.fs-no-dec { text-decoration: none !important; }
|
||||
.fs-strike { text-decoration: line-through !important; }
|
||||
.fs-line-through { text-decoration: line-through !important; }
|
||||
.fs-none { text-decoration: none !important; }
|
||||
.fs-normal { font-weight: normal !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-6 { font-size: 2.25rem !important; }
|
||||
.fs-5 { font-size: 2rem !important; }
|
||||
@ -207,26 +206,6 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
.fs-3 { font-size: 1.5rem !important; }
|
||||
.fs-2 { font-size: 1.25rem !important; }
|
||||
.fs-1 { font-size: 1rem !important; }
|
||||
.fs-break {
|
||||
word-wrap: break-word !important;
|
||||
word-break: break-word !important;
|
||||
}
|
||||
.fs-truncate {
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
.fs-nowrap {
|
||||
white-space: nowrap !important;
|
||||
text-wrap: nowrap !important;
|
||||
}
|
||||
.fs-wrap {
|
||||
white-space: normal !important;
|
||||
text-wrap: pretty !important;
|
||||
}
|
||||
.fs-lowercase { text-transform: lowercase !important; }
|
||||
.fs-uppercase { text-transform: uppercase !important; }
|
||||
.fs-capitalize { text-transform: capitalize !important; }
|
||||
|
||||
// Height
|
||||
.h-auto { height: auto !important; }
|
||||
@ -235,46 +214,44 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
}
|
||||
|
||||
// Hover
|
||||
.curs-hover:hover, .hover:hover { filter: brightness(125%) !important; }
|
||||
.curs-hover:hover {
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
.hover:hover { filter: brightness(125%) !important; }
|
||||
|
||||
// Opacity
|
||||
@each $div in $divisible {
|
||||
.o-#{$div} { opacity: #{$div}#{'%'} !important; }
|
||||
}
|
||||
|
||||
// Overflow
|
||||
@each $opt in ('auto', 'hidden', 'scroll', 'visible') {
|
||||
.overflow-#{$opt} { overflow: #{$opt} !important; }
|
||||
.overflow-x-#{$opt} { overflow-x: #{$opt} !important; }
|
||||
.overflow-y-#{$opt} { overflow-y: #{$opt} !important; }
|
||||
}
|
||||
|
||||
// Position
|
||||
@each $p, $pos in ('abs': 'absolute', 'fix': 'fixed', 'rel': 'relative', 'static': 'static', 'stick': 'sticky') {
|
||||
.pos-#{$p} { position: #{$pos} !important; }
|
||||
}
|
||||
|
||||
// Z-index
|
||||
@each $div in $divisible {
|
||||
.bottom-#{$div} { bottom: #{$div}#{'%'} !important; }
|
||||
.end-#{$div} { right: #{$div}#{'%'} !important; }
|
||||
.start-#{$div} { left: #{$div}#{'%'} !important; }
|
||||
.top-#{$div} { top: #{$div}#{'%'} !important; }
|
||||
.z-#{$div} { z-index: #{$div} !important; }
|
||||
}
|
||||
|
||||
// Shadows
|
||||
.shadow { box-shadow: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 !important; }
|
||||
.shadow-drop { filter: drop-shadow(0px 1px 2.5px black) !important; }
|
||||
.shadow-white { filter: drop-shadow(0px 1px 2.5px white) !important; }
|
||||
.shadow-none { box-shadow: none !important; }
|
||||
|
||||
// User Select
|
||||
@each $s in ('all', 'auto', 'none', 'text') {
|
||||
.select-#{$s} { user-select: #{$s} !important; }
|
||||
// Text
|
||||
.text-break {
|
||||
word-wrap: break-word !important;
|
||||
word-break: break-word !important;
|
||||
}
|
||||
.text-truncate {
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
.text-nowrap {
|
||||
white-space: nowrap !important;
|
||||
text-wrap: nowrap !important;
|
||||
}
|
||||
.text-wrap {
|
||||
white-space: normal !important;
|
||||
text-wrap: pretty !important;
|
||||
}
|
||||
|
||||
.text-lowercase { text-transform: lowercase !important; }
|
||||
.text-uppercase { text-transform: uppercase !important; }
|
||||
.text-capitalize { text-transform: capitalize !important; }
|
||||
|
||||
// Width
|
||||
.w-auto { width: auto !important; }
|
||||
@ -282,11 +259,15 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
.w-#{$div} { width: #{$div}#{'%'} !important; }
|
||||
}
|
||||
|
||||
// Z-index
|
||||
@each $s, $ignore in $sizes {
|
||||
.z-#{$s} { z-index: #{$s} !important; }
|
||||
// User Select
|
||||
@each $s in ('all', 'auto', 'none', 'text') {
|
||||
.select-#{$s} { user-select: #{$s} !important; }
|
||||
}
|
||||
|
||||
// Visibility
|
||||
.visible { visibility: visible !important; }
|
||||
.hidden { visibility: hidden !important; }
|
||||
|
||||
// Breakpoint rules
|
||||
@mixin utilities($bp) {
|
||||
@if $bp != null { $bp: '-#{$bp}'; }
|
||||
@ -299,17 +280,26 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
.align-y#{$bp}-start { vertical-align: top !important; }
|
||||
.align-y#{$bp}-end { vertical-align: bottom !important; }
|
||||
|
||||
// Border - Style
|
||||
.b#{$bp}-dash { border-style: dashed !important; }
|
||||
.b#{$bp}-dot-dash { border-style: dot-dash !important; }
|
||||
.b#{$bp}-dot-dot-dash { border-style: dot-dot-dash !important; }
|
||||
.b#{$bp}-dot { border-style: dotted !important; }
|
||||
.b#{$bp}-double { border-style: double !important; }
|
||||
.b#{$bp}-none { border-style: none !important; }
|
||||
.b#{$bp}-solid { border-style: solid !important; }
|
||||
|
||||
// Display
|
||||
@each $display in (block, inline, inline-block, 'flex', 'inline-flex' grid, inline-grid, table, table-row, table-cell, none) {
|
||||
@each $display in (block, inline, inline-block, grid, inline-grid, table, table-row, table-cell, none) {
|
||||
.d#{$bp}-#{$display} { display: #{$display} !important; }
|
||||
}
|
||||
|
||||
// Flex
|
||||
.align-content#{$bp}-start { align-content: start !important; }
|
||||
.align-content#{$bp}-end { align-content: end !important; }
|
||||
.align-content#{$bp}-center { align-content: center !important; }
|
||||
.align-content#{$bp}-baseline { align-content: baseline !important; }
|
||||
.align-content#{$bp}-stretch { align-content: stretch !important; }
|
||||
.align#{$bp}-start { align-content: start !important; }
|
||||
.align#{$bp}-end { align-content: end !important; }
|
||||
.align#{$bp}-center { align-content: center !important; }
|
||||
.align#{$bp}-baseline { align-content: baseline !important; }
|
||||
.align#{$bp}-stretch { align-content: stretch !important; }
|
||||
.align-items#{$bp}-start { align-items: start !important; }
|
||||
.align-items#{$bp}-end { align-items: end !important; }
|
||||
.align-items#{$bp}-center { align-items: center !important; }
|
||||
@ -353,18 +343,14 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
flex-direction: row-reverse !important;
|
||||
}
|
||||
.flex#{$bp}-fill { flex: 1 1 auto; }
|
||||
.flex#{$bp}-fill-even {
|
||||
.flex#{$bp}-expand {
|
||||
flex-basis: 0 !important;
|
||||
flex-grow: 1 !important;
|
||||
}
|
||||
.flex#{$bp}-grow-0 { flex-grow: 0 !important; }
|
||||
.flex#{$bp}-shrink-0 { flex-shrink: 0 !important; }
|
||||
.flex#{$bp}-grow-1 { flex-grow: 1 !important; }
|
||||
.flex#{$bp}-shrink-1 { flex-shrink: 1 !important; }
|
||||
.flex#{$bp}-grow-2 { flex-grow: 2 !important; }
|
||||
.flex#{$bp}-shrink-2 { flex-shrink: 2 !important; }
|
||||
.flex#{$bp}-grow-3 { flex-grow: 3 !important; }
|
||||
.flex#{$bp}-shrink-3 { flex-shrink: 3 !important; }
|
||||
.flex#{$bp}-grow-0 { flex-grow: 0 !important; }
|
||||
.flex#{$bp}-shrink-0 { flex-shrink: 0 !important; }
|
||||
.flex#{$bp}-nowrap { flex-wrap: nowrap !important; }
|
||||
.flex#{$bp}-wrap { flex-wrap: wrap !important; }
|
||||
.justify#{$bp}-start { justify-content: start !important; }
|
||||
@ -386,24 +372,26 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
.fit#{$bp}-scale { object-fit: scale-down !important; }
|
||||
.fit#{$bp}-none { object-fit: none !important; }
|
||||
|
||||
.m#{$bp}-auto { margin: auto !important; } // Margin
|
||||
.mx#{$bp}-auto { // Margin
|
||||
margin-left: auto !important;
|
||||
margin-right: auto !important;
|
||||
}
|
||||
.my#{$bp}-auto { // Margin
|
||||
margin-top: auto !important;
|
||||
margin-bottom: auto !important;
|
||||
// Overflow
|
||||
@each $opt in ('auto', 'hidden', 'scroll', 'visible') {
|
||||
.overflow#{$bp}-#{$opt} { overflow: #{$opt} !important; }
|
||||
.overflow-x#{$bp}-#{$opt} { overflow-x: #{$opt} !important; }
|
||||
.overflow-y#{$bp}-#{$opt} { overflow-y: #{$opt} !important; }
|
||||
}
|
||||
|
||||
// Visibility
|
||||
.visible#{$bp} { visibility: visible !important; }
|
||||
.hidden#{$bp} { visibility: hidden !important; }
|
||||
// Position
|
||||
@each $pos in ('absolute', 'fixed', 'relative', 'static', 'sticky') {
|
||||
.pos#{$bp}-#{$pos} { position: #{$pos} !important; }
|
||||
}
|
||||
|
||||
@each $s, $size in $sizes {
|
||||
.b#{$bp}-#{$s} { border: #{$s}px solid var(--theme-border) !important; } // Border
|
||||
.b#{$bp}-#{$s} { border: #{$s}px solid !important; } // Border
|
||||
.m#{$bp}-#{$s} { margin: $size !important; } // Margin
|
||||
.p#{$bp}-#{$s} { padding: $size !important; } // Padding
|
||||
.bx#{$bp}-#{$s} { // Border
|
||||
border-left: #{$s}px solid !important;
|
||||
border-right: #{$s}px solid !important;
|
||||
}
|
||||
.mx#{$bp}-#{$s} { // Margin
|
||||
margin-left: $size !important;
|
||||
margin-right: $size !important;
|
||||
@ -412,6 +400,10 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
padding-left: $size !important;
|
||||
padding-right: $size !important;
|
||||
}
|
||||
.by#{$bp}-#{$s} { // Border
|
||||
border-top: #{$s}px solid !important;
|
||||
border-bottom: #{$s}px solid !important;
|
||||
}
|
||||
.my#{$bp}-#{$s} { // Margin
|
||||
margin-top: $size !important;
|
||||
margin-bottom: $size !important;
|
||||
@ -422,13 +414,9 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
}
|
||||
|
||||
.order#{$bp}-#{$s} { order: $s !important; } // Flex order
|
||||
}
|
||||
|
||||
@each $d, $dir in $direction {
|
||||
.m#{$d}#{$bp}-auto { margin-#{$dir}: auto !important; } // Margin
|
||||
|
||||
@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 !important; } // Border
|
||||
.m#{$d}#{$bp}-#{$s} { margin-#{$dir}: $size !important; } // Margin
|
||||
.p#{$d}#{$bp}-#{$s} { padding-#{$dir}: $size !important; } // Padding
|
||||
}
|
||||
@ -436,23 +424,11 @@ $divisible: (0, 10, 20, 25, 30, 33, 34, 40, 50, 60, 66, 70, 75, 80, 90, 100);
|
||||
}
|
||||
|
||||
@include utilities(null);
|
||||
@media print { @include utilities('print'); }
|
||||
@media print {
|
||||
@include utilities('print');
|
||||
}
|
||||
@each $breakpoint, $min-width in $breakpoints {
|
||||
@media (min-width: #{$min-width}) {
|
||||
@include utilities($breakpoint);
|
||||
}
|
||||
}
|
||||
|
||||
// Border - Colors
|
||||
@each $color in ('black', 'white', 'primary', 'accent', 'info', 'success', 'text', 'warn', 'danger', 'muted') {
|
||||
.b-#{$color} { border-color: var(--theme-#{$color}) !important; }
|
||||
}
|
||||
|
||||
// Border - Style
|
||||
.b-dash { border-style: dashed !important; }
|
||||
.b-dot-dash { border-style: dot-dash !important; }
|
||||
.b-dot-dot-dash { border-style: dot-dot-dash !important; }
|
||||
.b-dot { border-style: dotted !important; }
|
||||
.b-double { border-style: double !important; }
|
||||
.b-none { border-style: none !important; }
|
||||
.b-solid { border-style: solid !important; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user