https://carbondesignsystem.com/developing/react-tutorial/overview
Carbon Design System
Carbon is IBM’s open source design system for products and digital experiences. With the IBM Design Language as its foundation, the system consists of working code, design tools and resources, human interface guidelines, and a vibrant community of contri
carbondesignsystem.com
Carbonμ΄λ?
Carbonμ IBMμ λμ§νΈ μ ν λ° κ²½νμ μν μ€νμμ€ λμμΈ μμ€ν μ΄λ€.
μ΄ μμ€ν μ λμ§νΈ μ ν λ° κ²½νμ κ°λ°νλ λ° λμμ΄ λλ λ€μν μμκ³Ό λꡬλ₯Ό μ 곡νλ€.
μ΄λ₯Ό ν΅ν΄ λμμ΄λμ κ°λ°μλ€μ μΌκ΄λ λμμΈ μμΉμ μ€μνκ³ , μ¬μ©μ κ²½νμ ν₯μμν€λ©°, μ νμ λ³΄λ€ ν¨μ¨μ μΌλ‘ κ°λ°ν μ μλ€.
λν Carbonμ IBM Design Languageλ₯Ό κΈ°λ°μΌλ‘ νμ¬ λμμΈμ μΌκ΄μ±κ³Ό νμ§μ μ μ§ν©λλ€.
2οΈβ£ Modular
Carbonμ λͺ¨λνλμ΄ μμ΅λλ€.
Carbonμ λͺ¨λνλ μ€νμμ μ΅λμ μ μ°μ±μ 보μ₯νλ€.
μΉ΄λ³Έμ ꡬμ±μμλ μ¬μ©μμ μꡬμ λ§λ μ΄λ€ μ‘°ν©μΌλ‘λ μννκ² μλνλλ‘ μ€κ³λμλ€.
3οΈβ£ Consistent
Carbonμ μΌκ΄μ±μ μ μ§νλ€.
ν¬κ΄μ μΈ IBM λμμΈ μΈμ΄λ₯Ό κΈ°λ°μΌλ‘, μΉ΄λ³Έμ λͺ¨λ μμμ ꡬμ±μμλ μΌκ΄λκ³ μμ§λ ₯ μλ μ¬μ©μ κ²½νμ 보μ₯νκΈ° μν΄ μ²μλΆν° ν¨κ» μλνλλ‘ μ€κ³λμλ€.
Reactμ μ μ©ν΄λ³΄κΈ°
https://carbondesignsystem.com/developing/react-tutorial/step-1#fork-clone-and-branch
Carbon Design System
Carbon is IBM’s open source design system for products and digital experiences. With the IBM Design Language as its foundation, the system consists of working code, design tools and resources, human interface guidelines, and a vibrant community of contri
carbondesignsystem.com
μ€μΉ
carbon μ€μΉ
yarn add @carbon/react@1.33.0
# νΉμ
npm install @carbon/react@1.33.0
sass μ€μΉ
yarn add sass@1.63.6
# νΉμ
npm install sass@1.63.6
Carbonμ μ€νμΌμ΄ Sassλ‘ μμ±λμ΄ μκΈ° λλ¬Έμ Sass λΉλλ₯Ό μ€νν΄μΌ νλ€.
μ€μΉκ° μλ£λμμΌλ μ¬μ©ν΄λ³΄μ.
μ½λ μμ±
scss μ½λ
AppTest.scss
// μνλ λ²νΌ μμ λ³μ μ μ
$myButtonColor: blue;
// Button μ»΄ν¬λνΈμ μ€νμΌ μ μ©
.MyButton {
background-color: $myButtonColor;
color: white;
border: none;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
}
// Button μ»΄ν¬λνΈμ νΈλ² ν¨κ³Ό μ μ©
.MyButton:hover {
background-color: darken($myButtonColor, 10%);
}
Javascript μ½λ
App.js
import './App.css';
import './style/AppTest.scss';
import { Button } from '@carbon/react';
function App() {
return (
<div>
<Button className="MyButton">button</Button>
</div>
);
}
export default App;
μ μ½λλ₯Ό μ€ννλ©΄ μ΄λ κ² λ³΄μΈλ€.
λΆνΈμ€νΈλ©μ²λΌ μ¬λ¬κ°μ§ λ²νΌ λͺ¨μμ΄ μμ μ€ μμλ€.
(EX. btn-primary νλ©΄ κΈ°λ³Έ λ²νΌ λͺ¨μμ΄ μ‘νλ κ²)
νμ§λ§ carbonμλ κΈ°λ³Έ λμμΈ λͺ¨μμ μλ κ² κ°κ³ , μ§μ λμμΈ μ€μ μ ν΄μΌ νλ κ² κ°λ€.
μ μ scss μ€μ νκΈ°
λ§μ΄ μ°μ΄λ μ½λλ₯Ό μ μ scss νμΌμ λͺ¨μμ μ¬μ©ν μ μλ€.
νμΌ μ΄λ¦μ global.scssλΌκ³ νκ² λ€.
src/app/globals.scss
@use '@carbon/react';
첫 μ€μ μμ κ°μ΄ μ μ΄μ€λ€.
μλ₯Ό λ€μ΄
src/components/TutorialHeader
βββ_tutorial-header.scss
βββTutorialHeader.js
ν΄λ κ΅¬μ‘°κ° μ΄λ κ² λμ΄ μλ€λ©΄,
src/app/globals.scss νμΌ μμͺ½μ μ λ¬Έμ₯μ μ¨μ€λ€.
@use '@carbon/react';
@use '@/components/TutorialHeader/tutorial-header';
κ·Έλ¦¬κ³ jsμμ tutorial-header.scssλ§ importνλ©΄ λκ³ ,
global.scssλ import ν΄μ€μ§ μμλ λλ€.
TutorialHeader.js
import React from 'react';
import '@carbon/icons/css/16/fill.css'; // Carbon μμ΄μ½ μ€νμΌ import
import '@/components/TutorialHeader/tutorial-header.scss'; // ν€λ μ»΄ν¬λνΈ μ€νμΌ import
function TutorialHeader() {
return (
<div className="tutorial-header">
<h1>Welcome to the Tutorial</h1>
<p>This is a tutorial header component.</p>
</div>
);
}
export default TutorialHeader;
CSS μ SCSS μ°¨μ΄
CSS
'.css' νμ₯μλ₯Ό κ°μ§ μΌλ°μ μΈ CSS νμΌ
κΈ°λ³Έμ μΌλ‘ μ€νμΌμ μ μνλ λ° μ¬μ©
λ³μ, mixin, nesting, μμ λ±μ κ³ κΈ κΈ°λ₯μ μ§μνμ§ μλλ€.
SCSS
'scss' νμ₯μλ₯Ό κ°μ§ SCSS(Sassy CSS)νμΌμ΄λ€.
CSSμ νμ₯μΌλ‘ CSS λ¬Έλ²μ νμ₯νμ¬ λ νλΆν κΈ°λ₯μ μ 곡νλ€.
λ³μ, mxin, nesting, μμ λ±κ³Ό κ°μ CSS μ μ²λ¦¬κΈ° κΈ°λ₯μ μ¬μ©ν μ μλ€.
CSS μμ±μ΄ λ ν¨μ¨μ μ΄κ³ μ μ§λ³΄μνκΈ° μ¬μμ§λ€.
→ '.scss' νμΌμ΄ '.css' νμΌλ³΄λ€ λ λ§μ κΈ°λ₯μ μ 곡νλ©°, νλ‘μ νΈμ μꡬμ λ°λΌ μ νν μ μλ€.
SCSSμ μ»΄νμΌ κ³Όμ
SCSS νμΌ μμ± → SCSS νμΌμ CSS νμΌλ‘ μ»΄νμΌ → CSS νμΌ μ μ©
'πππ > π²ππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
IBM carbon design system React framework μ¬μ©ν΄λ³΄κΈ° (0) | 2024.04.02 |
---|