diff --git a/front/src/App.vue b/front/src/App.vue index 7832ed209..bc2d60b9b 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -111,6 +111,7 @@ store.dispatch('auth/fetchUser') + diff --git a/front/src/components/ui/Heading.vue b/front/src/components/ui/Heading.vue index e8c608fcd..d82c8366b 100644 --- a/front/src/components/ui/Heading.vue +++ b/front/src/components/ui/Heading.vue @@ -26,23 +26,25 @@ const size = computed(() => (Object.entries(props).find(([key, value]) => value :is(h1, h2, h3, h4, h5, h6).heading { margin: 0; padding:0; vertical-align: baseline; align-self: baseline;} /* Page heading */ - .pageheading { font-size: 36px; font-weight: 900; letter-spacing: -1px; } + :is(*, .vp-doc h3).pageheading { font-size: 36px; font-weight: 900; letter-spacing: -1px; } /* Section heading, Modal heading [DEFAULT] */ + /* TODO: Decide on a size. All mockups on https://design.funkwhale.audio/ have 20px. */ .sectionheading { font-size: 28px; font-weight: 700; letter-spacing: -.5px; } + :is(*, .vp-doc h3).sectionheading { font-size: 20px; font-weight: 700; letter-spacing: -.5px; } /* Form subsection */ - .subsectionheading {font-size: 16px; font-weight: 600; letter-spacing: 0; } + :is(*, .vp-doc h3).subsectionheading {font-size: 16px; font-weight: 600; letter-spacing: 0; } /* input caption */ - .caption {font-size: 14px; font-weight: 600; letter-spacing: .25px; } + :is(*, .vp-doc h3).caption {font-size: 14px; font-weight: 600; letter-spacing: .25px; } /* Tab title, Channel title, Card title, Activity title */ - .title { font-size: 16px; font-weight: 700; line-height: 18px; } + :is(*, .vp-doc h3).title { font-size: 16px; font-weight: 700; line-height: 18px; } /* Primary radio title */ - .radio { font-size: 28px; font-weight: 900; letter-spacing: -.5px; } + :is(*, .vp-doc h3).radio { font-size: 28px; font-weight: 900; letter-spacing: -.5px; } /* Secondary radio title */ - .secondary { font-size: 28px; font-weight: 300; letter-spacing: -.5px; } + :is(*, .vp-doc h3).secondary { font-size: 28px; font-weight: 300; letter-spacing: -.5px; } diff --git a/front/src/components/ui/Section.vue b/front/src/components/ui/Section.vue index 8ed82680a..ecbef260c 100644 --- a/front/src/components/ui/Section.vue +++ b/front/src/components/ui/Section.vue @@ -12,13 +12,17 @@ const actionComponents = { Button, Link } const props = defineProps<{ - [M in 'no-items' | 'tiny-items' | 'small-items' | 'medium-items']?: true } + [M in 'no-items' | 'tiny-items' | 'small-items' | 'medium-items']?: true + } & { alignLeft?: boolean; - collapsed?: boolean; + action?: { text: string } & (RouterLinkProps | { onClick: (...args: any[]) => void | Promise }) + } + & { + [Operation in 'expand' | 'collapse']?: () => void } & { [H in 'h1' | 'h2' | 'h3']?: string } - & { action?: { text: string } & (RouterLinkProps | { onClick: (...args: any[]) => void | Promise }) }>() + >() const heading = props.h1 @@ -41,27 +45,65 @@ const headerGrid - - - - + + {{ action?.text }} @@ -87,18 +129,22 @@ const headerGrid @@ -108,6 +154,12 @@ const headerGrid