sv-menu
v1.3.4
Published
**SV-menu** é um componente para ambiente de menu, com sidebar e navbar com o objetivo de ser altamente customizável (EM BETA).
Readme
SV- Menu (v0.2.1) (BETA)
SV-menu é um componente para ambiente de menu, com sidebar e navbar com o objetivo de ser altamente customizável (EM BETA).
Para começar a usar o SV-Menu
Instale o sv-menu:
yarn add sv-menu
-ou-
npm install sv-menu Em seguida, instale usando npm ou yarn as dependências do sv-menu:
yarn add styled-components @types/styled-components react-icons
-ou-
npm install styled-components @types/styled-components react-iconsExemplo
import React from 'react';
import { GiFrance } from 'react-icons/gi';
import Menu from './Menu';
const App: React.FC = () => {
return (
<>
<Menu
logo='logo'
sidebarOptions={{
menuList: [
{
onClick: () => alert("olá sidebar"),
icon: <GiFrance />,
text: "exemplo item"
}
]
}}
navbarOptions={{
menuList: [
{
onClick: () => alert("olá navbar"),
icon: <GiFrance />,
text: "exemplo item"
}
]
}}
>
<>
olá mundo
</>
</Menu>
</>
);
}
export default App;API
PRINCIPAIS
| Parámetro | Tipo | Descrição |
| :----------------- | :------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |
| typeMenu | "only-sidebar" ou "only-navbar" ou "side-navbar" | Tipo de exibição, pretendendo ocultar o navbar ou o sidebar ou até mesmo exibir os dois. |
| sidebarStyle | React.CSSProperties | Pacote de estilos css para estilizar o sidebar. |
| navbarStyle | React.CSSProperties | Pacote de estilos css para estilizar o navbar. |
| logo | string ou undefined | Exibição da logo. |
| children | JSX.Element | Insere todo o contexto de uma página aqui. |
| wrapperStyle | React.CSSProperties | Pacote de estilos css para estilizar o container externo, fora do side e navbar. Você pode mudar a cor de fundo da página utilizando ela por exemplo. |
| contextMainStyle | CSSProperties | Pacote de estilos css para você estilizar o contextMain (onde se inicia todo o contexto da página) |
SIDEBAR
O objeto sidebarOptions você pode incluir propriedades de alguns estilos e definições em geral em relação ao sidebar, são eles:
menuList
Crie uma lista de menus do sidebar aqui, recebendo dentro do menuList um array de objetos, onde podem receber cada objeto:
| Parâmetro | Tipo | Descrição |
| :------------- | :------------- | :--------------------------------------------------------------------------------------------------------- |
| text | string? | Texto do menuItem. |
| icon | JSX.Element? | Icone do menuItem. |
| active | boolean? | Se o o menuItem está como ativo, simulando um :active em um css por exemplo. |
| onClick | () => any | Função de click do menuItem. |
| isBottom | boolean? | Defina se esse menuItem ficará embaixo no contexto do sidebar. |
| marginBottom | string | Defina a margem do bottom do menuItem/roupText. |
| marginTop | string | Defina a margem do top do menuItem/roupText. |
| textGroup | boolean | Defina o tipo do texto como um texto de grupo, tornando não clicável e servindo como apenas um indicativo. |
menuItemStyle
Defina uma estilizção customizada dos menuItems. Suas propriedades são:
| Parâmetro | Tipo | Descrição |
| :--------------------- | :------- | :-------------------------------------------------------------------------------------------------------------- |
| color | string | definição da cor do menuItem |
| background | string | definição da cor de fundo do menuItem |
| backgroundLine | string | definição da cor da linha do menuItem (isso só é visível se o menuItemHoverType estiver como line-left) |
| hoverColor | string | definição da cor do menuItem quando estiver no modo hover. |
| hoverBackground | string | definição da cor de fundo do menuItem quando estiver no modo hover. |
| hoverBackgroundLine | string | definição da cor da linha do menuItem quando estiver no modo hover. |
| activeColor | string | definição de cor do menuItem se o active estiver true |
| activeBackground | string | definição de cor de fundo do menuItem se o active estiver true |
| activeBackgroundLine | string | definição de cor da linha do menuItem se o active estiver true |
|groupTextColor| string | Defina a cor dos textGroup. |
outros
| Parâmetro | Tipo | Descrição |
| :--------------------- | :----------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| menuItemHoverType | "default" ou "line-left" | Define o tipo de menuItem |
| headerComponent | (toggle: () => any, isMinificated: boolean, isMobile: boolean) => JSX.Element | Você pode definir livremente o cabeçalho do sidebar e ainda utilizar as propriedades de minificação do sidebar dentro dos parâmentros. O primeiro parâmetro é uma função de toggle do sidebar e o segundo um boolean mostrando o estado atual, o terceiro é um booleano mostrando o estado da tela, se está em mobile ou não. |
| headerStyle | React.CSSProperties | estilização do cabeçalho do sidebar. |
| isMinificated | boolean | Exibir/não exibir o botão de minimizar o sidebar |
| minifacetButtonColor | string | Definir cor do botão de exibir/não exibir o sidebar |
| bottomComponent | (isMinifated: boolean) => JSX.Element | Definir um componente livre embaixo do sidebar. |
NAVBAR
Um objeto navbarOptions você pode incluir propriedades de alguns estilos e definições em geral em relação ao navbar, são eles:
| Parâmetros | Tipos | Descrição |
| :--------------------- | :------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| isMinificated | boolean | Exibir/Não exibir o botão de minificar o sidebar, mas só será possível se o typeMenu estiver em side-navbar. |
| minificatedColor | string | Definir cor do botão de exibir/não exibir o sidebar. |
| minificatedComponent | (toggle: () => any, isMinificated: boolean ) => JSX.Element | Você pode optar em criar o seu próprio componente onde em algum lugar possa ter as mesmas funções ou reações que o botão de minificação padrão. |
| menuList | menuListType[] | Defina os menuItens em seu navbar, são essas propriedades para cada menu: text? : Texto do menu item. icon? : Icone do menuItem. active? : Se o menuItem estiver em modo de estilização ativo. onClick : Função de click do menuItem para a ação. |
Mobile
| Parâmetro | Tipo | Descrição |
| :----------------------- | :--------------------- | :-------------------------------------- |
| mobileType | "Default" ou "Float" | Tipo do botão de menu no modo mobile. |
| mobileToggleIcon | JSX.Element | Icone do botão de menu do mobile. |
| mobileToggleBackground | string | Cor de fundo do menu, o padrão é #fff |
