cirrus-ui
Version:
A lightweight UI framework written in SCSS
250 lines (210 loc) • 5.46 kB
Plain Text
@use 'sass:map';
@use '../src/internal/generator_v2';
@use '../src/internal' as *;
/* FONT */
/* Constants */
/* Headers */
@each $class, $property-map in $font-heading-sizes {
#{$class} {
@include explode-properties(map.get($property-map, 'sm-above'));
font-family: map.get($map: $font-families, $key: primary);
font-weight: 700;
line-height: 1.2;
margin-bottom: 1rem;
}
}
/* Headlines (for larger titles) */
@each $class, $property-map in $font-headline-sizes {
.#{$class} {
@include explode-properties(map.get($property-map, 'sm-above'));
letter-spacing: 0.05rem;
}
}
/* Regular text sizes */
@each $class, $property-map in $font-text-sizes {
.text-#{$class} {
@include explode-properties($property-map);
}
}
p,
article,
blockquote {
font-size: $font-size-m;
line-height: 2;
margin-bottom: 1rem;
}
p.lead {
font-size: 1.2rem;
}
blockquote {
background-color: fill('gray', '000');
border-left: 5px solid fill('gray', '200');
border-radius: 3px;
margin-bottom: 1rem;
padding: 1rem 2rem;
&.text--large {
font-size: 1.15rem;
}
p {
margin: 0;
}
}
cite {
opacity: 0.7;
}
mark,
.mark {
padding: 0.2em;
background-color: #f0e8c4;
}
.font-primary {
font-family: map.get($map: $font-families, $key: primary);
}
.font-alt,
.font-secondary {
font-family: map.get($map: $font-families, $key: secondary);
}
.content {
@for $index from 1 through 6 {
h#{$index} {
line-height: 1.125em;
margin: 1rem 0;
}
}
}
/* Deprecated 0.8.0 */
// .title {
// font-weight: bold;
// }
// .title:not(:last-child),
// .subtitle:not(:last-child) {
// margin-bottom: 1rem;
// }
// .title + .subtitle {
// /* Make the subtitlte closer to the title */
// margin-top: -0.75rem;
// }
/* Use default line-height for these texts and when line-height-inherit is specified */
.card-tile p,
.card-tile article,
.card-tile blockquote {
line-height: inherit;
}
/* Weights */
@each $weight, $value in $font-weights {
.font-#{$weight} {
font-weight: $value;
}
}
/* Text Transformations */
@each $name, $transformation in $font-transforms {
.#{$name} {
text-transform: $transformation;
}
}
@include generator_v2.utility(
$base-class-name: 'font-style',
$class-value-pairs: generator_v2.class-value-to-property-map($font-styles, font-style),
$variants: (),
$class-prefix: '',
$override: '!important'
);
.rtl {
direction: rtl;
}
/* Font Awesome */
.icon {
/* Usually used in spans */
display: inline-block;
/* font-size: 21px; Allow font sizes for icons to be overwritten */
/* line-height: 1.5rem; Allow line height to be inherited or overwritten */
text-align: center;
width: 1.5rem;
vertical-align: baseline;
&.x-small {
margin: 0.55rem 0 0 0.1rem;
}
&.small {
margin: 0.95rem 0 0 0.1rem;
}
.fa-wrapper {
font-size: inherit;
}
}
.info {
display: block;
font-size: var(--font-size-s);
margin-top: 0.25rem;
color: fill('gray', '600');
&.inline {
/* Keeps the extra info inline */
display: inline-block;
margin-left: 0.5rem;
}
}
.caret {
display: inline-block;
width: 0;
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px dashed;
border-top: 4px solid\9;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
/* Other text elements */
abbr[title] {
border-bottom: 0.1rem dotted;
cursor: help;
text-decoration: none;
}
kbd {
background-color: var(--cirrus-fg);
border-radius: 0.2rem;
color: #fff;
display: inline-block;
line-height: 1;
padding: 0.5rem;
vertical-align: baseline;
}
/* Letter spacing */
@if should-generate-classes($LETTER-SPACING) {
@include generator_v2.utility(
$base-class-name: 'tracking',
$class-value-pairs: generator_v2.class-value-to-property-map($font-letter-spacing, letter-spacing),
$variants: get-pseudo-variants($LETTER-SPACING),
$class-prefix: '',
$override: '!important'
);
}
/* Line height */
@if should-generate-classes($LINE-HEIGHT) {
@include generator_v2.utility(
$base-class-name: 'leading',
$class-value-pairs: generator_v2.class-value-to-property-map($font-line-heights, line-height),
$variants: get-pseudo-variants($LINE-HEIGHT),
$class-prefix: '',
$override: '!important'
);
}
/* MOBILE */
@include screen-below($xs) {
@each $class, $property-map in $font-heading-sizes {
#{$class} {
@include explode-properties(map.get($property-map, 'default'));
}
}
/* Headlines (for larger titles) */
@each $class, $property-map in $font-headline-sizes {
.#{$class} {
@include explode-properties(map.get($property-map, 'default'));
}
}
// Deprecated 0.8.0, leads to unexpected behavior to users
// p,
// article,
// blockquote {
// margin: 1rem 0;
// }
}