consul/ui/packages/consul-ui/app/styles/typography.scss
John Cowen 92f0eb3bdc
ui: Re-organize our %h* placeholders (#9584)
We've always had this idea of being able to markup up information
semantically without thinking about what it should look like, then
applying our %h* placeholder styles to control what the information
should look like.

Back when we originally made our set of %h* placeholders, we tried to
follow Structure as much as possible, which defined the largest header
(which we thought would have been the h1 style) as a super large 3.5rem.

Therefore we made our set of %h* placeholders the same as Structure
beginning at a huge 3.5 size. We then re-overwrote those sizes only in
Consul specific CSS files thinking that this was due to us existing
before Structure did.

Lately we saw an extra clue in Structure - the extra large 3.5 header was
called 'h0'.

This commit moves all our headers to use a zero based scale, and
additionally uses our 3 digit scale as opposed to 1 digit (h1 vs h100),
similar to our color scales (note we don't use a hypen, which we can
alter later if need be), which means we can insert additional h150 etc
if need be.

Additional we stop styling our headers globally (h1 { @extend %h100; }
). This means there is no reason not to use headers for marking up
content depending on what it is rather than what it should look like,
and as a consequence means we can be more purposeful in ordering h*
tags.

Lastly, we use the new scale over the entire codebase and update a
couple of places where we were using using header tags due to what the
styleing for them looked like rather than what the meaning/order was.
2021-01-26 17:53:45 +00:00

122 lines
2.1 KiB
SCSS

body,
%form-element-text-input {
@extend %typo-body;
}
%radio-card header,
fieldset > header,
%main-nav-horizontal-action,
%definition-table dt,
%table caption,
%tbody-th,
%form-element > span {
@extend %h400;
}
%internal-button,
%breadcrumbs li > *,
%tab-nav {
@extend %h500;
}
%healthcheck-output dt,
%table th,
%table td strong,
%sliding-toggle label span {
@extend %h600;
}
pre code,
%notice,
%notice p,
%flash-message p,
%filter-bar input,
%tab-section p {
@extend %p1;
}
%menu-panel dl,
%empty-state-anchor,
.type-dialog,
%table td p,
%table td,
%healthcheck-output dl > dd,
%form-element-label,
%stats-card header a span,
%footer,
%menu-panel-header,
%app-view h1 span.kind-proxy {
@extend %p2;
}
%empty-state-subheader,
%empty-state p,
%button,
%main-content p,
%form-element-note,
%menu-panel-separator,
%form-element-error > strong {
@extend %p3;
}
%radio-group label {
line-height: $typo-lead-200;
}
%tab-nav {
letter-spacing: 0.03em;
}
/*TODO: See if we can collapse these into a */
/* strong %p3 */
%form-element-label,
%button {
font-weight: $typo-weight-semibold;
}
%menu-panel dt,
%route-card section dt,
%route-card header:not(.short) dd,
%splitter-card > header {
font-weight: $typo-weight-bold;
}
%menu-panel-separator {
font-weight: $typo-weight-medium;
}
/**/
/* resets */
%menu-panel dt span,
%empty-state-subheader,
%main-content label a[rel*='help'],
%pill,
%form-element > strong,
%tbody-th em,
%app-view h1 em,
%route-card header dt {
font-weight: $typo-weight-normal;
}
%form-element-note,
%tbody-th em,
%app-view h1 em {
font-style: normal;
}
/**/
/* composite row */
%composite-row-header {
font-size: $typo-size-450;
font-weight: $typo-weight-medium;
}
%composite-row-header *:not(button) {
font-size: inherit;
font-weight: inherit;
}
/**/
/* TODO: We have nothing else with a 500 */
/* either make this the biggest %p or don't use it */
%app-view h1 em {
font-size: $typo-size-500;
}
/*TODO: This should go in reset, and probably needs select etc adding */
@media (max-width: 420px) and (-webkit-min-device-pixel-ratio: 0) {
input {
font-size: 16px !important;
}
}