Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/cyan-laws-bow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@solidmaterial/material': minor
---

Add separate components for leading buttons in app bar
5 changes: 5 additions & 0 deletions .changeset/forty-kiwis-jump.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@solidmaterial/calculator': patch
---

Use new component for back button in app bar
5 changes: 5 additions & 0 deletions .changeset/green-rice-melt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@solidmaterial/landing-page': patch
---

Avoid unstable text reflow in hero section when changing the orientation on mobile
5 changes: 5 additions & 0 deletions .changeset/long-horses-rule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@solidmaterial/landing-page': minor
---

Add app bars with menu button to pages
5 changes: 5 additions & 0 deletions .changeset/seven-pans-speak.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@solidmaterial/landing-page': patch
---

Use new component for back button in app bar
5 changes: 5 additions & 0 deletions .changeset/tricky-keys-act.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@solidmaterial/material': patch
---

Fix modal hidden navigation rail blinking when navigating to a page
8 changes: 6 additions & 2 deletions apps/calculator/src/routes/about.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import favIconUrl from '/assets/favicon.svg?url&no-inline';
//
import { MetaProvider, Title } from '@solidjs/meta';
import { useNavigate } from '@solidjs/router';
import { MaterialAppBar } from '@solidmaterial/material/components/app-bar';
import { MaterialAppBar, MaterialAppBarBackButton } from '@solidmaterial/material/components/app-bar';
import { H2, H3 } from '@solidmaterial/material/components/typography';
import { MaterialBodyLayout, MaterialPane } from '@solidmaterial/material/layouts';

Expand All @@ -24,7 +24,11 @@ const RouteAbout: Component = () => {
</MetaProvider>
<MaterialBodyLayout variant="flexible-fixed">
<MaterialPane>
<MaterialAppBar variant="small" title="About" leadingButtonAriaLabel="Go back" onNavigate={navigateBack} />
<MaterialAppBar
variant="small"
title="About"
leadingButton={<MaterialAppBarBackButton title="Go back" onClick={navigateBack} />}
/>
<main class={styles['main']}>
<img src={favIconUrl} alt="logo" class={styles['logo']} />
<H2 role="display" size="small">
Expand Down
8 changes: 6 additions & 2 deletions apps/calculator/src/routes/settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { Component, VoidComponent } from 'solid-js';

import { MetaProvider, Title } from '@solidjs/meta';
import { useNavigate } from '@solidjs/router';
import { MaterialAppBar } from '@solidmaterial/material/components/app-bar';
import { MaterialAppBar, MaterialAppBarBackButton } from '@solidmaterial/material/components/app-bar';
import { MaterialButton } from '@solidmaterial/material/components/button';
import { MaterialDialog } from '@solidmaterial/material/components/dialog';
import { MaterialIcon } from '@solidmaterial/material/components/icon';
Expand Down Expand Up @@ -99,7 +99,11 @@ const RouteSettings: Component = () => {
</MaterialDialog>
<MaterialBodyLayout variant="flexible-fixed">
<MaterialPane>
<MaterialAppBar variant="small" title="Settings" leadingButtonAriaLabel="Go back" onNavigate={navigateBack} />
<MaterialAppBar
variant="small"
title="Settings"
leadingButton={<MaterialAppBarBackButton title="Go back" onClick={navigateBack} />}
/>
<main class={styles['main']}>
<H2 role="title" size="small">
Theme
Expand Down
5 changes: 2 additions & 3 deletions apps/landing-page/src/examples/calculator/Calculator.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { VoidComponent } from 'solid-js';

import { useNavigate } from '@solidjs/router';
import { MaterialAppBar } from '@solidmaterial/material/components/app-bar';
import { MaterialAppBar, MaterialAppBarBackButton } from '@solidmaterial/material/components/app-bar';
import { MaterialIconButton } from '@solidmaterial/material/components/icon-button';
import { Breakpoints } from '@solidmaterial/material/utils';
import { createSignal } from 'solid-js';
Expand Down Expand Up @@ -31,7 +31,7 @@ export const Calculator: VoidComponent<ExampleProps> = props => {
<MaterialAppBar
variant={isMobile() ? 'small' : 'large'}
title={props.data.label}
leadingButtonAriaLabel="Go back to list"
leadingButton={<MaterialAppBarBackButton title="Go back to list" onClick={navigateBackToList} />}
trailingButtons={
<MaterialIconButton
variant="text"
Expand All @@ -41,7 +41,6 @@ export const Calculator: VoidComponent<ExampleProps> = props => {
target="_blank"
/>
}
onNavigate={navigateBackToList}
/>
<main class={styles['main']}>
<VibrateContext.Provider value={[isVibrate, setVibrate]}>
Expand Down
5 changes: 2 additions & 3 deletions apps/landing-page/src/examples/todo-list/TodoList.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { VoidComponent } from 'solid-js';

import { useNavigate } from '@solidjs/router';
import { MaterialAppBar } from '@solidmaterial/material/components/app-bar';
import { MaterialAppBar, MaterialAppBarBackButton } from '@solidmaterial/material/components/app-bar';
import { MaterialButton } from '@solidmaterial/material/components/button';
import { MaterialCheckbox } from '@solidmaterial/material/components/checkbox';
import { MaterialIconButton } from '@solidmaterial/material/components/icon-button';
Expand Down Expand Up @@ -68,8 +68,7 @@ export const TodoList: VoidComponent<ExampleProps> = props => {
<MaterialAppBar
variant={isMobile() ? 'small' : 'large'}
title={props.data.label}
leadingButtonAriaLabel="Go back to list"
onNavigate={navigateBackToList}
leadingButton={<MaterialAppBarBackButton title="Go back to list" onClick={navigateBackToList} />}
/>
<main class={styles['main']}>
<form action="" method="dialog" onSubmit={onSubmit} class={styles['form']}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@
transition-duration: var(--md-sys-motion-duration-spatial-fast);
transition-timing-function: var(--md-sys-motion-spring-spatial-fast);

/* Avoid unstable text reflow when changing the orientation on mobile */
@media (width < 600px) or (height < 480px) {
transition-duration: var(--md-sys-motion-duration-standard-spatial-fast);
transition-timing-function: var(--md-sys-motion-spring-standard-spatial-fast);
}

padding: var(--md-user-spacing-4xl);
gap: var(--md-user-spacing-2xl);

Expand Down
19 changes: 14 additions & 5 deletions apps/landing-page/src/routes/components/[[name]].module.css
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
.list-pane {
--md-comp-pane-container-color: var(--md-sys-color-surface-container-low);

h1 {
margin-block-end: var(--md-user-spacing-md);
}
--md-comp-app-bar-container-color: transparent;

aside {
h1 {
margin-block-end: var(--md-user-spacing-md);
}

sm-list + h1 {
margin-block-start: var(--md-user-spacing-xl);
sm-list + h1 {
margin-block-start: var(--md-user-spacing-xl);
}
}
}

/* Adjust app bar container color when it's not the only pane */
sm-body-layout:not(:has(> :only-child)) .list-pane {
--md-comp-app-bar-on-scroll-container-color: var(--md-comp-pane-container-color);
}
66 changes: 39 additions & 27 deletions apps/landing-page/src/routes/components/[[name]].tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@ import type { Component } from 'solid-js';

import { MetaProvider, Title } from '@solidjs/meta';
import { useParams } from '@solidjs/router';
import { MaterialAppBar } from '@solidmaterial/material/components/app-bar';
import { H1 } from '@solidmaterial/material/components/typography';
import { MaterialListDetailLayout, MaterialPane } from '@solidmaterial/material/layouts';
import {
MaterialListDetailLayout,
MaterialNavigationRailLayoutMenuButton,
MaterialPane
} from '@solidmaterial/material/layouts';
import { Show, createMemo } from 'solid-js';

import { EmptyState } from '../../components/empty-state/EmptyState';
Expand Down Expand Up @@ -43,32 +48,39 @@ const PageComponents: Component = () => {
</MetaProvider>
<MaterialListDetailLayout selected={params.name !== undefined}>
<MaterialPane class={styles['list-pane']}>
<aside>
<H1 role="label" size="large">
Components
</H1>
<ComponentList items={COMPONENTS} name={params.name} />
<H1 role="label" size="large">
Buttons
</H1>
<ComponentList items={BUTTONS} name={params.name} />
<H1 role="label" size="large">
Controls
</H1>
<ComponentList items={CONTROLS} name={params.name} />
<H1 role="label" size="large">
Navigation
</H1>
<ComponentList items={NAVIGATION} name={params.name} />
<H1 role="label" size="large">
Layout
</H1>
<ComponentList items={LAYOUT} name={params.name} />
<H1 role="label" size="large">
Utilities
</H1>
<ComponentList items={UTILITIES} name={params.name} />
</aside>
<div>
<MaterialAppBar
variant="small"
title="Components"
leadingButton={<MaterialNavigationRailLayoutMenuButton title="Open menu" titleSelected="Close menu" />}
/>
<aside>
<H1 role="label" size="large">
Components
</H1>
<ComponentList items={COMPONENTS} name={params.name} />
<H1 role="label" size="large">
Buttons
</H1>
<ComponentList items={BUTTONS} name={params.name} />
<H1 role="label" size="large">
Controls
</H1>
<ComponentList items={CONTROLS} name={params.name} />
<H1 role="label" size="large">
Navigation
</H1>
<ComponentList items={NAVIGATION} name={params.name} />
<H1 role="label" size="large">
Layout
</H1>
<ComponentList items={LAYOUT} name={params.name} />
<H1 role="label" size="large">
Utilities
</H1>
<ComponentList items={UTILITIES} name={params.name} />
</aside>
</div>
</MaterialPane>

<MaterialPane>
Expand Down
7 changes: 7 additions & 0 deletions apps/landing-page/src/routes/examples/[[name]].module.css
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
.list-pane {
--md-comp-pane-container-color: var(--md-sys-color-surface-container-low);

--md-comp-app-bar-container-color: transparent;
}

/* Adjust app bar container color when it's not the only pane */
sm-body-layout:not(:has(> :only-child)) .list-pane {
--md-comp-app-bar-on-scroll-container-color: var(--md-comp-pane-container-color);
}
20 changes: 16 additions & 4 deletions apps/landing-page/src/routes/examples/[[name]].tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@ import type { ParentComponent } from 'solid-js';

import { MetaProvider, Title } from '@solidjs/meta';
import { useParams } from '@solidjs/router';
import { MaterialListDetailLayout, MaterialPane } from '@solidmaterial/material/layouts';
import { MaterialAppBar } from '@solidmaterial/material/components/app-bar';
import {
MaterialListDetailLayout,
MaterialNavigationRailLayoutMenuButton,
MaterialPane
} from '@solidmaterial/material/layouts';
import { Show, createMemo } from 'solid-js';
import { Dynamic } from 'solid-js/web';

Expand Down Expand Up @@ -33,9 +38,16 @@ const PageExamples: ParentComponent = () => {
}
>
<MaterialPane class={styles['list-pane']}>
<aside>
<ExampleList name={params.name} />
</aside>
<div>
<MaterialAppBar
variant="small"
title="Examples"
leadingButton={<MaterialNavigationRailLayoutMenuButton title="Open menu" titleSelected="Close menu" />}
/>
<aside>
<ExampleList name={params.name} />
</aside>
</div>
</MaterialPane>
<MaterialPane>
<Show
Expand Down
13 changes: 6 additions & 7 deletions apps/landing-page/src/routes/get-started.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import type { Component } from 'solid-js';

import { MetaProvider, Title } from '@solidjs/meta';
import { useNavigate } from '@solidjs/router';
import { MaterialAppBar } from '@solidmaterial/material/components/app-bar';
import { H2, H3, Span } from '@solidmaterial/material/components/typography';
import { MaterialBodyLayout, MaterialPane } from '@solidmaterial/material/layouts';
import {
MaterialBodyLayout,
MaterialNavigationRailLayoutMenuButton,
MaterialPane
} from '@solidmaterial/material/layouts';
import { Breakpoints } from '@solidmaterial/material/utils';
import { createSignal } from 'solid-js';

Expand All @@ -22,9 +25,6 @@ import { PromptBlock } from '../components/prompt-block/PromptBlock';
import styles from './get-started.module.css';

const PageGetStarted: Component = () => {
const navigate = useNavigate();
const navigateBackToList = () => navigate('..', { state: { transition: 'top-level' } });

const isMobile = () => Breakpoints.isCompactWidth();

const [activeTab, setActiveTab] = createSignal<'pnpm' | 'yarn' | 'npm'>('pnpm');
Expand All @@ -39,8 +39,7 @@ const PageGetStarted: Component = () => {
<MaterialAppBar
variant={isMobile() ? 'small' : 'large'}
title="Getting started"
leadingButtonAriaLabel="Go back to list"
onNavigate={navigateBackToList}
leadingButton={<MaterialNavigationRailLayoutMenuButton title="Open menu" titleSelected="Close menu" />}
/>
<main class={styles['main']}>
<Span role="body" size="large">
Expand Down
7 changes: 6 additions & 1 deletion apps/landing-page/src/routes/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ import { MetaProvider, Title } from '@solidjs/meta';
import { MaterialAppBar } from '@solidmaterial/material/components/app-bar';
import { MaterialIconButton } from '@solidmaterial/material/components/icon-button';
import { H2 } from '@solidmaterial/material/components/typography';
import { MaterialBodyLayout, MaterialPane } from '@solidmaterial/material/layouts';
import {
MaterialBodyLayout,
MaterialNavigationRailLayoutMenuButton,
MaterialPane
} from '@solidmaterial/material/layouts';
import { createSignal } from 'solid-js';

/* Used as a social button to link to GitHub project (see https://brand.github.com/foundations/logo) */
Expand Down Expand Up @@ -39,6 +43,7 @@ const PageHome: Component = () => {
<MaterialAppBar
variant="small"
title="Solid Material"
leadingButton={<MaterialNavigationRailLayoutMenuButton title="Open menu" titleSelected="Close menu" />}
trailingButtons={
<>
<MaterialIconButton
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,12 @@
padding-inline: var(--md-comp-app-bar-leading-space) var(--md-comp-app-bar-trailing-space);

/* Align small text with text in appendix if there is no leading icon button */
&:not(:has(.back-button)) {
&:not(:has(.leading-button:not(:empty))) {
grid-template-columns: auto min-content;
padding-inline-start: var(--md-user-spacing-md);
}

.back-button {
.leading-button {
--sm-icon-button-icon-color: var(--md-comp-app-bar-leading-icon-color);

&:dir(rtl) {
Expand Down Expand Up @@ -138,14 +138,18 @@
gap: var(--md-comp-app-bar-icon-button-space);
}

.back-button,
.leading-button,
.trailing-buttons {
display: grid;
place-items: center;
grid-auto-flow: column;
grid-auto-columns: minmax(48px, auto);
height: 48px;
}

.leading-button:empty {
display: none;
}
}

.app-bar-background {
Expand Down
Loading
Loading