1. Onsen UI
-
- ๋ชจ๋ฐ์ผ ์ผ์ด์ค ๋์
- ์์ด์ฝ (Font Awesome, Ionicons)
- ๋ฌธ์ ์ต์ ํ๋ ์ ์๋จ(React์ ๋ถ์น์ )
1.1 ์์ : ๊ณต์๋ฌธ์ ๋ฐ๋ผํด๋ณด๊ธฐ
1$ npx create-react-app ui2$ cd ui3$ npm install onsenui react-onsenui --save # Onsen UI ์ค์น4$ npm start
2. ์์ 1 : ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
2.1 App.js
1import './App.css'2// Webpack CSS import, ๋ฐ์ 2์ค importํด์ผ ์ธ ์ ์์3import 'onsenui/css/onsenui.css'4import 'onsenui/css/onsen-css-components.css'5import OnesenUIExample from './components/OnsenUI/OnesenUIExample'67export default function App() {8return (9<div className="App">10<OnesenUIExample />11</div>12)13}
2.2 OnsenUIExample
1// src/components/OnsenUI/OnsenUIExample.jsx2import ButtonExample from './ButtonExample'3import { Page } from 'react-onsenui'45export default function OnesenUIExample() {6return (7<Page>8<ButtonExample />9</Page>10)11}
2.3 ButtonExample
1// src/components/OnsenUI/ButtonExample.jsx2import { Button } from 'react-onsenui'34export default function ButtonExample() {5const hnadleClick = () => {6alert('๋๋ ์!')7}8return (9<>10<Button onClick={hnadleClick} modifier="large--cta">11Tap Me12</Button>1314<Button onClick={hnadleClick} disabled={true}>15disabled16</Button>1718<Button onClick={hnadleClick} modifier="outline">19outline20</Button>2122<Button onClick={hnadleClick} modifier="light">23light24</Button>2526<Button onClick={hnadleClick} modifier="quiet">27quiet28</Button>2930<Button onClick={hnadleClick} modifier="cta">31cta32</Button>3334<Button onClick={hnadleClick} modifier="large-quiet">35large-quiet36</Button>3738<Button onClick={hnadleClick} modifier="material">39material40</Button>4142<Button onClick={hnadleClick} modifier="material-flat">43material-flat44</Button>45</>46)47}
3. ์์ 2: Action Sheet
1// src/components/OnsenUI/ActionSheetExample.jsx2import { useState } from 'react'3import { ActionSheetButton, ActionSheet, Button } from 'react-onsenui'45export default function ActionSheetExample() {6const [open, setOpen] = useState(false)7const handleClick = () => {8setOpen(true)9}10return (11<div>12<Button onClick={handleClick}>Action Sheet ์ด๊ธฐ</Button>13<ActionSheet isOpen={open} title="action sheet">14<ActionSheetButton>Label 1</ActionSheetButton>15<ActionSheetButton>Label 2</ActionSheetButton>16<ActionSheetButton>Label 4</ActionSheetButton>17<ActionSheetButton modifier="destructive">Cancel</ActionSheetButton>18<ActionSheetButton>Save</ActionSheetButton>19</ActionSheet>20</div>21)22}
1// src/components/OnsenUI/OnsenUIExample.jsx2import ButtonExample from './ButtonExample'3import { Page } from 'react-onsenui'4import ActionSheetExample from './ActionSheetExample'56export default function OnesenUIExample() {7return (8<Page>9<ActionSheetExample />10<ButtonExample />11</Page>12)13}
4. ์์ 3 : List
1import React from 'react'2import { Checkbox, List, ListItem } from 'react-onsenui'34export default function CheckBoxExample() {5return (6<List>7<ListItem tappable>8<label class="left">9<Checkbox input-id="check-1"></Checkbox>10</label>11<label for="check-1" class="center">12Apple13</label>14</ListItem>15<ListItem tappable>16<label class="left">17<Checkbox input-id="check-2" checked></Checkbox>18</label>19<label for="check-2" class="center">20Banana21</label>22</ListItem>23</List>24)25}
1// src/components/OnsenUI/OnsenUIExample.jsx2import ButtonExample from './ButtonExample'3import { Page } from 'react-onsenui'4import ActionSheetExample from './ActionSheetExample'5import CheckBoxExample from './CheckBoxExample'67export default function OnesenUIExample() {8return (9<Page>10<CheckBoxExample />11<ActionSheetExample />12<ButtonExample />13</Page>14)15}
5. ์์ 4 : Fab + Icon
1import React from 'react'2import { Fab, Icon } from 'react-onsenui'34export default function FabExample() {5return (6<div>7<Fab position="bottom right">8<Icon icon="fa-space-shuttle"></Icon>9</Fab>10</div>11)12}
OnsenUIExample.jsx์ ์ถ๊ฐ