1
0
mirror of https://github.com/phuoc-ng/csslayout.git synced 2025-08-25 23:06:15 +02:00

feat: Split navigation

This commit is contained in:
Phuoc Nguyen
2022-09-22 08:38:35 +07:00
parent 59036baa87
commit 310996b134
7 changed files with 87 additions and 138 deletions

View File

@@ -0,0 +1,6 @@
<ul class="split-navigation">
<li class="split-navigation__item">{% rectangle "hor", "sm", 100 %}</li>
<li class="split-navigation__item">{% rectangle "hor", "sm", 100 %}</li>
<li class="split-navigation__item">{% rectangle "hor", "sm", 100 %}</li>
<li class="split-navigation__item split-navigation__item--right">{% rectangle "hor", "sm", 100 %}</li>
</ul>

View File

@@ -132,6 +132,7 @@ eleventyExcludeFromCollections: true
{% pattern "Menu" %}{% include "covers/menu.njk" %}{% endpattern %}
{% pattern "Pagination" %}{% include "covers/pagination.njk" %}{% endpattern %}
{% pattern "Previous next buttons" %}{% include "covers/previous-next-buttons.njk" %}{% endpattern %}
{% pattern "Split navigation" %}{% include "covers/split-navigation.njk" %}{% endpattern %}
{% pattern "Tab" %}{% include "covers/tab.njk" %}{% endpattern %}
{% pattern "Wizard" %}{% include "covers/wizard.njk" %}{% endpattern %}
</div>

View File

@@ -0,0 +1,52 @@
---
layout: layouts/post.njk
title: Split navigation
description: Create a split navigation with CSS flexbox
keywords: css flexbox, css menu, css navigation, css split navigation
---
## HTML
```html
<ul class="split-navigation">
<!-- Navigation item -->
<li class="split-navigation__item">
<a href="">...</a>
</li>
<!-- Navigation item that sticks to the right -->
<li class="split-navigation__item split-navigation__item--right">
<a href="">...</a>
</li>
</ul>
```
## CSS
```css
.split-navigation {
/* Content is centered horizontally */
align-items: center;
display: flex;
/* Reset styles */
list-style-type: none;
margin: 0;
padding: 0 0 0.5rem 0;
}
.split-navigation__item {
margin-right: 0.25rem;
/* Demo */
width: 1.25rem;
}
.split-navigation__item--right {
/* Sticks to the right */
margin-left: auto;
margin-right: 0;
}
```
{% demo %}{% include "covers/split-navigation.njk" %}{% enddemo %}

View File

@@ -1,94 +0,0 @@
import * as React from 'react';
import Head from 'next/head';
import { Spacer } from '@1milligram/design';
import { RelatedPatterns } from '../../components/RelatedPatterns';
import { Pattern } from '../../constants/Pattern';
import { PatternLayout } from '../../layouts/PatternLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
import Rectangle from '../../placeholders/Rectangle';
const Details: React.FC<{}> = () => {
return (
<PatternLayout pattern={Pattern.SplitNavigation}>
<Head>
<meta name="description" content="Create a split navigation with CSS flexbox" />
<meta name="og:description" content="Create a split navigation with CSS flexbox" />
<meta name="twitter:description" content="Create a split navigation with CSS flexbox" />
<meta name="keywords" content="css flexbox, css menu, css navigation, css split navigation" />
</Head>
<BrowserFrame
html={`
<ul class="container">
<!-- Navigation item -->
<li>
<a href="">...</a>
</li>
<!-- Navigation item that sticks to the right -->
<li class="container__item--right">
<a href="">...</a>
</li>
</ul>
`}
css={`
.container {
/* Content is centered horizontally */
align-items: center;
display: flex;
/* Reset styles */
list-style-type: none;
margin: 0;
}
.container__item--right {
/* Sticks to the right */
margin-left: auto;
}
`}
>
<div
style={{
alignItems: 'center',
display: 'flex',
flexDirection: 'column',
height: '100%',
justifyContent: 'center',
padding: '8px',
}}
>
<ul
style={{
alignItems: 'center',
border: '1px solid #d1d5db',
borderRadius: '8px',
display: 'flex',
listStyleType: 'none',
margin: 0,
padding: '16px',
width: '60%',
}}
>
<li style={{ marginRight: '4px', width: '20%' }}>
<Rectangle />
</li>
<li style={{ marginRight: '4px', width: '10%' }}>
<Rectangle />
</li>
<li style={{ marginRight: '4px', width: '20%' }}>
<Rectangle />
</li>
<li style={{ marginLeft: 'auto', width: '10%' }}>
<Rectangle />
</li>
</ul>
</div>
</BrowserFrame>
<Spacer size="extraLarge" />
<RelatedPatterns patterns={[Pattern.DotLeader, Pattern.Menu, Pattern.PropertyList]} />
</PatternLayout>
);
};
export default Details;

View File

@@ -1,44 +0,0 @@
import * as React from 'react';
import Frame from '../../placeholders/Frame';
import Rectangle from '../../placeholders/Rectangle';
const Cover: React.FC<{}> = () => {
return (
<Frame>
<div
style={{
alignItems: 'center',
display: 'flex',
flexDirection: 'column',
height: '100%',
justifyContent: 'center',
padding: '8px',
}}
>
<div
style={{
alignItems: 'center',
border: '1px solid #d1d5db',
borderRadius: '8px',
display: 'flex',
padding: '4px',
width: '100%',
}}
>
<div style={{ marginRight: '4px', width: '16px' }}>
<Rectangle />
</div>
<div style={{ marginRight: '4px', width: '16px' }}>
<Rectangle />
</div>
<div style={{ marginLeft: 'auto', width: '16px' }}>
<Rectangle />
</div>
</div>
</div>
</Frame>
);
};
export default Cover;

View File

@@ -81,6 +81,7 @@
@import './patterns/simple-grid';
@import './patterns/slider';
@import './patterns/spin-button';
@import './patterns/split-navigation';
@import './patterns/split-screen';
@import './patterns/stacked-cards';
@import './patterns/stamp-border';

View File

@@ -0,0 +1,27 @@
.split-navigation {
/* Content is centered horizontally */
align-items: center;
display: flex;
/* Reset styles */
list-style-type: none;
margin: 0;
padding: 0 0 0.5rem 0;
/* Demo */
border-bottom: 1px solid #d1d5db;
width: 8rem;
}
.split-navigation__item {
margin-right: 0.25rem;
/* Demo */
width: 1.25rem;
}
.split-navigation__item--right {
/* Sticks to the right */
margin-left: auto;
margin-right: 0;
}