shortstyle v0.1.53
Shortstyle
CSS written in .(s)css file:
padding-top: 10px;
padding-bottom: 20px;
padding-right: 5px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-end;
"helper classes" from Fancy-pancy-css-lib-XYZ (or your own custom helpers):
className="pt10 pb20 pr5 flex-column justify-content-middle alien-items-end"
Shortstyle:
s="p10_5_20_0 xcce"
Shortstyle lets you style in the most susynced way you've ever tried.
It comes with the most common functions: h, w, p, m, ... But you can also define your own functions: sh, q, ...
How it works:
Think of each work in the shortstyle string as a call to a styling function.
"h10"
is a call to the function h like so h(10)
and h is just height so it's very simple:h = (x) => {height: `${x}px`}
"posa"
is a call to pos(a)
:
const pos = (x) => {
switch (x) {
case 'a': return {position: 'absolute'};
case 'f': return {position: 'fixed'};
case 'r': return {position: 'relative'};
case 's': return {position: 'static'};
default: throw new Error(`pos doesn't support ${x}`);
}
};
API DOCS
Note that you can customize the unit
style | string-based | generated css |
---|---|---|
height | 'h14' | height: 14 |
width | 'w14' | width: 14 |
min-height | 'ih5' | min-height: 5 |
min-width | 'iw7' | min-width: 7 |
max-height | 'xh20' | max-height: 20 |
max-width | 'xw34' | max-width: 34 |
position | 'posa' | position: absolute |
. | 'posf' | position: fixed |
. | 'posr' | position: relative |
. | 'poss' | position: static |
left | 'lef10' | left: 10 |
right | 'rig10' | right: 10 |
top | 'top' | top: 10 |
bottom | 'bot' | bottom: 10 |
margin | 'm10_4_2_8' | margin: 10 4 2 8 |
. | 'm10_5' | margin: 10 5 |
. | 'mt10' | margin-top: 10 |
. | 'mb10' | margin-bottom: 10 |
. | 'ml10' | margin-left: 10 |
. | 'mr10' | margin-right: 10 |
padding | 'p10_4_2_8' | padding: 10 4 2 8 |
. | 'p10_5' | padding: 10 5 |
. | 'pt10' | padding-top: 10 |
. | 'pb10' | padding-bottom: 10 |
. | 'pl10' | padding-left: 10 |
. | 'pr10' | padding-right: 10 |
z-index | 'z99' | z-index: 99 |
text-align | 'tac' | text-align: center |
. | 'tal' | text-align: left |
. | 'tar' | text-align: right |
white-space | 'whn' | white-space: nowrap |
. | 'whp' | white-space: pre |
. | 'whi' | white-space: initial |
overflow | 'ova' | overflow: auto |
. | 'ovs' | overflow: scroll |
. | 'ovh' | overflow: hidden |
. | 'ovv' | overflow: visible |
. | 'ovi' | overflow: initial |
text-overflow | 'ove' | text-overflow: ellipsis |
. | 'ovs' | text-overflow: scroll |
. | 'ovh' | text-overflow: hidden |
. | 'ovv' | text-overflow: visible |
. | 'ovi' | text-overflow: initial |
Flexbox
Flex is done by 1-7 character each representing a flex property
# Property based / String based
x: 'ccew10' 'xccew10'
flex-direction (r = row, c = column)
| justify-content (c = center, e = flex-end, s = flex-start, a = space-around, b = space-between)
| | align-items (c = center, e = flex-end, s = flex-start, b = baseline, t = stretch)
| | | flex-wrap (w = wrap, r = wrap-reverse)
| | | | flex-grow (unit)
| | | | | flex-shrink (unit)
| | | | | |
v v v v v v
x c c e w 1 0
# Examples:
xccew10 => display: flex; flex-direction: column; justify-content: center; align-items: flex-end; flex-wrap: wrap; flex-grow: 1; flex-shrink: 0;
xcc => display: flex; flex-direction: column; justify-content: center;
x__cr => display: flex; align-items: center; flex-wrap: wrap-reverse;
Overridables
Some of the style functions are intended for you to override to get the application-specific behaviour you want.
Font
A font function can typically give the following behaviour
font-family (eg. t = Times New Roman, a = Arial, ...)
| font-size (number unit)
| | color (eg. bk = black, re = red, bu = blue, ...)
| | | font-weight (eg. number unit * 100)
| | | |
| | | |
| | | |
v v v v
f t 5 bu 7
# Examples:
ft5bu7 => font-family: Times; font-size: 1.125rem; color: blue; font-weight: 700;
fa5__2 => font-family: Arial; font-size: 1.125rem; font-weight: 200;
f_9___ => font-size: 1.6rem;
Questions?
Does this affect performance? Not much in most cases thanks to optimizations.
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago