Skip to content

Commit

Permalink
add missing logical properties
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisburnell committed Nov 28, 2021
1 parent b104b0d commit ead3566
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 135 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@chrisburnell/bowhead",
"version": "0.2.1",
"version": "0.2.2",
"description": "Memorable and maintainable design tokens in SCSS",
"main": "bowhead.scss",
"scripts": {
Expand Down
223 changes: 103 additions & 120 deletions src/_config.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,125 +8,108 @@ $bowhead-show-fallback: true !default;
// Decides whether or not to generate CSS Variables for you.
$bowhead-generate: true !default;

$bowhead-tokens: (
measure: (
small: 0.5rem,
medium: 1rem,
large: 2rem,
),
color: (
brick: #b22222,
plankton: #3cb371,
desert: #d2b48c
),
opacity: (
alpha: 0.8,
beta: 0.5,
gamma: 0.2
),
z-index: (
below: -1,
root: 0,
default: 1,
above: 2
)
) !default;
$bowhead-tokens: () !default;

$bowhead-property-map: () !default;
$bowhead-property-map: map-merge((
width: measure,
min-width: measure,
min-inline-size: measure,
max-width: measure,
max-inline-size: measure,
height: measure,
min-height: measure,
min-block-size: measure,
max-height: measure,
max-block-size: measure,
padding: measure,
padding-block: measure,
padding-inline: measure,
padding-top: measure,
padding-block-start: measure,
padding-right: measure,
padding-inline-end: measure,
padding-bottom: measure,
padding-block-end: measure,
padding-left: measure,
padding-inline-start: measure,
margin: measure,
margin-block: measure,
margin-inline: measure,
margin-top: measure,
margin-block-start: measure,
margin-right: measure,
margin-inline-end: measure,
margin-bottom: measure,
margin-block-end: measure,
margin-left: measure,
margin-inline-start: measure,
outline-offset: measure,
flex-basis: measure,
gap: measure,
grid-gap: measure,
column-gap: measure,
row-gap: measure,
top: measure,
bottom: measure,
left: measure,
right: measure,
border-width: measure,
border-block: measure,
border-inline: measure,
border-top-width: measure,
border-block-start-width: measure,
border-right-width: measure,
border-inline-start-width: measure,
border-bottom-width: measure,
border-block-end-width: measure,
border-left-width: measure,
border-inline-end-width: measure,
outline-width: measure,
text-decoration-thickness: measure,
text-underline-offset: measure,
border-radius: measure,
border-top-left-radius: measure,
border-start-start-radius: measure,
border-top-right-radius: measure,
border-start-end-radius: measure,
border-bottom-right-radius: measure,
border-end-end-radius: measure,
border-bottom-left-radius: measure,
border-end-start-radius: measure,
background-color: color,
accent-color: color,
caret-color: color,
border-color: color,
border-block-color: color,
border-inline-color: color,
border-top-color: color,
border-block-start-color: color,
border-right-color: color,
border-inline-start-color: color,
border-bottom-color: color,
border-block-end-color: color,
border-left-color: color,
border-inline-end-color: color,
outline-color: color,
fill: color,
stroke: color,
text-decoration-color: color,
text-emphasis-color: color,
border-block-style: border-style,
border-inline-style: border-style,
border-top-style: border-style,
border-block-start-style: border-style,
border-right-style: border-style,
border-inline-start-style: border-style,
border-bottom-style: border-style,
border-block-end-style: border-style,
border-left-style: border-style,
border-inline-end-style: border-style,
outline-style: border-style
), $bowhead-property-map);
$bowhead-property-map: map-merge(
(
width: measure,
inline-size: measure,
min-width: measure,
min-inline-size: measure,
max-width: measure,
max-inline-size: measure,
height: measure,
block-size: measure,
min-height: measure,
min-block-size: measure,
max-height: measure,
max-block-size: measure,
padding: measure,
padding-block: measure,
padding-inline: measure,
padding-top: measure,
padding-block-start: measure,
padding-right: measure,
padding-inline-end: measure,
padding-bottom: measure,
padding-block-end: measure,
padding-left: measure,
padding-inline-start: measure,
margin: measure,
margin-block: measure,
margin-inline: measure,
margin-top: measure,
margin-block-start: measure,
margin-right: measure,
margin-inline-end: measure,
margin-bottom: measure,
margin-block-end: measure,
margin-left: measure,
margin-inline-start: measure,
outline-offset: measure,
flex-basis: measure,
gap: measure,
grid-gap: measure,
column-gap: measure,
row-gap: measure,
top: measure,
bottom: measure,
left: measure,
right: measure,
border-width: measure,
border-block: measure,
border-inline: measure,
border-top-width: measure,
border-block-start-width: measure,
border-right-width: measure,
border-inline-start-width: measure,
border-bottom-width: measure,
border-block-end-width: measure,
border-left-width: measure,
border-inline-end-width: measure,
outline-width: measure,
text-decoration-thickness: measure,
text-underline-offset: measure,
border-radius: measure,
border-top-left-radius: measure,
border-start-start-radius: measure,
border-top-right-radius: measure,
border-start-end-radius: measure,
border-bottom-right-radius: measure,
border-end-end-radius: measure,
border-bottom-left-radius: measure,
border-end-start-radius: measure,
background-color: color,
accent-color: color,
caret-color: color,
border-color: color,
border-block-color: color,
border-inline-color: color,
border-top-color: color,
border-block-start-color: color,
border-right-color: color,
border-inline-start-color: color,
border-bottom-color: color,
border-block-end-color: color,
border-left-color: color,
border-inline-end-color: color,
outline-color: color,
fill: color,
stroke: color,
text-decoration-color: color,
text-emphasis-color: color,
border-block-style: border-style,
border-inline-style: border-style,
border-top-style: border-style,
border-block-start-style: border-style,
border-right-style: border-style,
border-inline-start-style: border-style,
border-bottom-style: border-style,
border-block-end-style: border-style,
border-left-style: border-style,
border-inline-end-style: border-style,
outline-style: border-style,
),
$bowhead-property-map
);
27 changes: 13 additions & 14 deletions src/_functions.scss
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,16 @@
///
/// @return Associated CSS Variable or SCSS value
///
@function v($property, $value: default, $fallback: not $bowhead-variable-as-default) {
$generic-values: auto, inherit, initial, none, revert, unset, 0, 1, 100%, currentColor;
@function v(
$property,
$value: default,
$fallback: not $bowhead-variable-as-default
) {
$generic-values: auto, inherit, initial, none, revert, unset, 0, 1, 100%,
currentColor;
@if (index($generic-values, $value)) {
@return $value;
}
@else {
} @else {
// if we're passing in a key in the tokens Map (e.g. measure)
@if map-has-key($bowhead-tokens, $property) {
$map-variables: map-get($bowhead-tokens, $property);
Expand All @@ -36,8 +40,7 @@

@if $fallback {
@return map-get($map-variables, $value);
}
@else {
} @else {
@return var(--#{$property}-#{$value});
}
}
Expand Down Expand Up @@ -70,12 +73,10 @@

@if $fallback {
@return map-get($nest-map, $value);
}
@else {
} @else {
@return var(--#{$nest-name}-#{$nest-map-name}-#{$value});
}
}
@else {
} @else {
// get the map from map name
$map: map-get($bowhead-tokens, $map-properties);

Expand All @@ -86,13 +87,11 @@

@if $fallback {
@return map-get($map, $value);
}
@else {
} @else {
@return var(--#{$map-properties}-#{$value});
}
}
}
@else {
} @else {
// throw a warning if the property does not exist
@warn "There is no property named `#{$property}` in the variable or property map. The value should be one of `#{map-keys(map-merge($bowhead-tokens, $bowhead-property-map))}`.";
}
Expand Down

0 comments on commit ead3566

Please sign in to comment.