title | components |
---|---|
Componente App Bar (Barra de Aplicativos) para React |
AppBar, Toolbar, Menu |
A Barra de aplicativos exibe informações e ações relacionadas à tela atual.
A barra de aplicativos superior provê conteúdo e ações relacionados à tela atual. Ela é utilizada para a identidade visual, títulos de tela, navegação, e ações.
It can transform into a contextual action bar or be used as a navbar.
{{"demo": "pages/components/app-bar/ButtonAppBar.js", "bg": true}}
Um campo de busca principal.
{{"demo": "pages/components/app-bar/PrimarySearchAppBar.js", "bg": true}}
{{"demo": "pages/components/app-bar/MenuAppBar.js", "bg": true}}
Uma barra de pesquisa na lateral.
{{"demo": "pages/components/app-bar/SearchAppBar.js", "bg": true}}
{{"demo": "pages/components/app-bar/DenseAppBar.js", "bg": true}}
Uma barra de aplicativos proeminente.
{{"demo": "pages/components/app-bar/ProminentAppBar.js", "bg": true}}
{{"demo": "pages/components/app-bar/BottomAppBar.js", "iframe": true, "maxWidth": 500}}
Quando você renderiza a posição da barra de apps fixa, a dimensão do elemento não afeta o resto da página. Isso pode fazer com que parte do seu conteúdo fique invisível, atrás da barra de aplicativos. Aqui estão 3 soluções possíveis:
- Você pode usar
posição="sticky"
ao invés de fixed.⚠️ sticky não é suportado pelo IE 11. - Você pode renderizar um segundo componente
<Toolbar />
:
function App() {
return (
<React.Fragment>
<AppBar position="fixed">
<Toolbar>{/* conteúdo */}</Toolbar>
</AppBar>
<Toolbar />
</React.Fragment>
);
}
- Você pode usar
theme.mixins.toolbar
CSS:
const useStyles = makeStyles(theme => ({
offset: theme.mixins.toolbar,
}))
function App() {
const classes = useStyles();
return (
<React.Fragment>
<AppBar position="fixed">
<Toolbar>{/* conteúdo */}</Toolbar>
</AppBar>
<div className={classes.offset} />
</React.Fragment>
)
};
Você pode usar o hook useScrollTrigger()
para responder às ações de rolagem do usuário.
A barra de aplicativos sumirá ao descer a página para deixar mais espaço de leitura.
{{"demo": "pages/components/app-bar/HideAppBar.js", "iframe": true, "maxWidth": 500}}
A barra de aplicativos eleva-se na rolagem para comunicar que o usuário não está na parte superior da página.
{{"demo": "pages/components/app-bar/ElevateAppBar.js", "iframe": true, "maxWidth": 500}}
Um botão de ação flutuante aparece na rolagem para facilitar o retorno ao topo da página.
{{"demo": "pages/components/app-bar/BackToTop.js", "iframe": true, "maxWidth": 500}}
options
(Object [opcional]):
options.disableHysteresis
(Boolean [opcional]): Padrãofalse
. Desabilita a histerese. Ignora a direção de rolagem ao determinar o valortrigger
.options.target
(Node [opcional]): Padrãowindow
.options.threshold
(Number [opcional]): Padrão100
. Modifica o valor limite que aciona atrigger
quando a barra de rolagem vertical cruzar ou chegar a este limite.
trigger
: A posição da tela bate com o critério estabelecido?
import useScrollTrigger from '@material-ui/core/useScrollTrigger';
function HideOnScroll(props) {
const trigger = useScrollTrigger();
return (
<Slide in={!trigger}>
<div>Hello</div>
</Slide>
);
}