1
0
mirror of https://github.com/phuoc-ng/csslayout.git synced 2025-08-09 07:36:30 +02:00

Merge pull request #45 from phuoc-ng/radio-switch

Radio switch
This commit is contained in:
phuoc-ng
2019-11-24 15:47:35 +07:00
committed by GitHub
6 changed files with 114 additions and 4 deletions

View File

@@ -31,6 +31,7 @@ const App = () => {
<Route exact={true} path='/pricing-table'><DetailsLoader pattern="Pricing table" /></Route> <Route exact={true} path='/pricing-table'><DetailsLoader pattern="Pricing table" /></Route>
<Route exact={true} path='/progress-bar'><DetailsLoader pattern="Progress bar" /></Route> <Route exact={true} path='/progress-bar'><DetailsLoader pattern="Progress bar" /></Route>
<Route exact={true} path='/questions-and-answers'><DetailsLoader pattern="Questions and answers" /></Route> <Route exact={true} path='/questions-and-answers'><DetailsLoader pattern="Questions and answers" /></Route>
<Route exact={true} path='/radio-switch'><DetailsLoader pattern="Radio switch" /></Route>
<Route exact={true} path='/same-height-columns'><DetailsLoader pattern="Same height columns" /></Route> <Route exact={true} path='/same-height-columns'><DetailsLoader pattern="Same height columns" /></Route>
<Route exact={true} path='/search-box'><DetailsLoader pattern="Search box" /></Route> <Route exact={true} path='/search-box'><DetailsLoader pattern="Search box" /></Route>
<Route exact={true} path='/separator'><DetailsLoader pattern="Separator" /></Route> <Route exact={true} path='/separator'><DetailsLoader pattern="Separator" /></Route>

View File

@@ -46,7 +46,7 @@ const Home = () => {
</div> </div>
<div className="bt b--black-20 relative"> <div className="bt b--black-20 relative">
<h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0" style={{ transform: 'translate(0, -50%)' }}>Layouts</h3> <h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0 ttu" style={{ transform: 'translate(0, -50%)' }}>Layouts</h3>
<div className="flex flex-wrap items-start pa4"> <div className="flex flex-wrap items-start pa4">
<CoverCard pattern="Holy grail" /> <CoverCard pattern="Holy grail" />
@@ -58,7 +58,7 @@ const Home = () => {
</div> </div>
<div className="bt b--black-20 relative"> <div className="bt b--black-20 relative">
<h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0" style={{ transform: 'translate(0, -50%)' }}>Patterns</h3> <h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0 ttu" style={{ transform: 'translate(0, -50%)' }}>Patterns</h3>
<div className="flex flex-wrap items-start pa4"> <div className="flex flex-wrap items-start pa4">
<CoverCard pattern="Badge" /> <CoverCard pattern="Badge" />
@@ -80,6 +80,7 @@ const Home = () => {
<CoverCard pattern="Pricing table" /> <CoverCard pattern="Pricing table" />
<CoverCard pattern="Progress bar" /> <CoverCard pattern="Progress bar" />
<CoverCard pattern="Questions and answers" /> <CoverCard pattern="Questions and answers" />
<CoverCard pattern="Radio switch" />
<CoverCard pattern="Same height columns" /> <CoverCard pattern="Same height columns" />
<CoverCard pattern="Search box" /> <CoverCard pattern="Search box" />
<CoverCard pattern="Separator" /> <CoverCard pattern="Separator" />

View File

@@ -4,7 +4,7 @@ const Footer = () => {
return ( return (
<div className="bl br bb b--black-20 flex justify-between br4 br--bottom"> <div className="bl br bb b--black-20 flex justify-between br4 br--bottom">
<div className="bt br b--black-20 relative" style={{ flex: 1 }}> <div className="bt br b--black-20 relative" style={{ flex: 1 }}>
<h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0" style={{ transform: 'translate(0, -50%)' }}>PRODUCTS</h3> <h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0 ttu" style={{ transform: 'translate(0, -50%)' }}>Products</h3>
<ul className="list ma0 pa0 lh-copy fw5 pa4"> <ul className="list ma0 pa0 lh-copy fw5 pa4">
<li> <li>
@@ -26,7 +26,7 @@ const Footer = () => {
</div> </div>
<div className="bt b--black-20 relative" style={{ flex: 1 }}> <div className="bt b--black-20 relative" style={{ flex: 1 }}>
<h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0" style={{ transform: 'translate(0, -50%)' }}>ABOUT</h3> <h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0 ttu" style={{ transform: 'translate(0, -50%)' }}>About</h3>
<div className="pa4"> <div className="pa4">
<div className="pb2 lh-copy">© 2019 Nguyen Huu Phuoc and contributors</div> <div className="pb2 lh-copy">© 2019 Nguyen Huu Phuoc and contributors</div>

View File

@@ -0,0 +1,22 @@
import React from 'react';
import Frame from '../../placeholders/Frame';
import Rectangle from '../../placeholders/Rectangle';
const Cover = () => {
return (
<Frame>
<div className="h-100 flex flex-column items-center justify-center pa2">
<div className="w-80 flex items-center justify-center b--black-30 br-pill ba pa1">
<div className="pa1" style={{ flex: 1 }}>
<Rectangle />
</div>
<div className="pa1 br-pill bg-black-10 h-100" style={{ flex: 1 }}>
</div>
</div>
</div>
</Frame>
);
};
export default Cover;

View File

@@ -0,0 +1,85 @@
import React, { useState } from 'react';
import DetailsLayout from '../../layouts/DetailsLayout';
import BrowserFrame from '../../placeholders/BrowserFrame';
import Rectangle from '../../placeholders/Rectangle';
import SampleCode from '../../SampleCode';
const Details = () => {
const [isFirstChecked, setFirstChecked] = useState(false);
const toggle = () => setFirstChecked(c => !c);
return (
<DetailsLayout title="Radio switch">
<div className="ph4 pv5">
<BrowserFrame
content={
<div className="h-100 flex flex-column items-center justify-center">
<div className="inline-flex br-pill bg-black-10 pa1">
<label className={`pointer pv3 ph2 br-pill ${isFirstChecked ? 'bg-blue white' : ''}`}>
<input type="radio" className="dn" checked={isFirstChecked} onClick={toggle} />
<div className={`w3 br1 ${isFirstChecked ? 'bg-white' : 'bg-black-20'}`} style={{ height: '8px' }} />
</label>
<label className={`pointer pv3 ph2 br-pill ${isFirstChecked ? '' : 'bg-blue white'}`}>
<input type="radio" className="dn" checked={!isFirstChecked} onClick={toggle} />
<div className={`w3 br1 ${isFirstChecked ? 'bg-black-20' : 'bg-white'}`} style={{ height: '8px' }} />
</label>
</div>
</div>
}
source={
<SampleCode
lang="html"
code={`
<!-- Container -->
<div style="
background-color: rgba(0, 0, 0, .1);
border-radius: 9999px;
display: inline-flex;
padding: 4px;
">
<!-- Radio container -->
<label style="
border-radius: 9999px;
cursor: pointer;
padding: 4px 8px;
/* For selected radio only */
background-color: #357edd;
color: #fff;
">
<input type="radio" style="display: none" />
<!-- Text -->
...
</label>
<!-- Other radio item -->
...
</div>
`}
/>
}
/>
</div>
<div className="bt b--black-20 relative">
<h3 className="absolute bg-white f4 left-2 lh-copy ma0 ph2 top-0 ttu" style={{ transform: 'translate(0px, -50%)' }}>Use cases</h3>
<div className="pa4">
<div className="inline-flex br-pill bg-black-10 pa1">
<label className="pointer pv1 ph2 br-pill flex bg-blue white">
<input type="radio" className="dn" />
Monthly
</label>
<label className="pointer pv1 ph2 br-pill flex">
<input type="radio" className="dn" />
Yearly
</label>
</div>
</div>
</div>
</DetailsLayout>
);
};
export default Details;

View File

@@ -23,6 +23,7 @@
<url><loc>https://csslayout.io/pricing-table</loc></url> <url><loc>https://csslayout.io/pricing-table</loc></url>
<url><loc>https://csslayout.io/progress-bar</loc></url> <url><loc>https://csslayout.io/progress-bar</loc></url>
<url><loc>https://csslayout.io/questions-and-answers</loc></url> <url><loc>https://csslayout.io/questions-and-answers</loc></url>
<url><loc>https://csslayout.io/radio-switch</loc></url>
<url><loc>https://csslayout.io/same-height-columns</loc></url> <url><loc>https://csslayout.io/same-height-columns</loc></url>
<url><loc>https://csslayout.io/search-box</loc></url> <url><loc>https://csslayout.io/search-box</loc></url>
<url><loc>https://csslayout.io/separator</loc></url> <url><loc>https://csslayout.io/separator</loc></url>