consul/ui/packages/consul-ui/app/components/notice
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
..
README.stories.mdx
index.hbs
index.scss
layout.scss
skin.scss ui: Re-organize our %h* placeholders (#9584) 2021-01-26 17:53:45 +00:00

README.stories.mdx

import { Meta, Story, Canvas } from '@storybook/addon-docs/blocks';
import { hbs } from 'ember-cli-htmlbars';

<Meta title="Components/Notice" component="Notice" />

# Notice

<Canvas>
  <Story name="Basic"
    argTypes={{
      type: {
        defaultValue: 'success',
        control: {
          type: 'select',
          options: [
            'success',
            'warning',
            'info',
            'highlight',
          ]
        }
      }
    }}
  >{(args) => ({
    template: hbs`<Notice
        @type={{type}}
      as |notice|>
        <notice.Header>
          <h3>Header</h3>
        </notice.Header>
        <notice.Body>
          <p>
            Body
          </p>
        </notice.Body>
        <notice.Footer>
          <p>
            Footer
          </p>
        </notice.Footer>
      </Notice>`,
    context: args
  })}
  </Story>
</Canvas>