

Desain secara bersamaan di berbagai tema dan ukuran layar, ditenagai oleh JSX dan perpustakaan komponen Anda sendiri.
Ruang bermain memungkinkan Anda untuk membuat lingkungan desain yang berorientasi kode nol-instal, dibangun menjadi bundel mandiri yang dapat digunakan di samping dokumentasi sistem desain Anda yang ada.
Iterasi pada desain Anda di media terakhir.
Buat mock-up cepat dan prototipe interaktif dengan kode nyata.
Latihan dan evaluasi fleksibilitas sistem desain Anda.
Bagikan pekerjaan Anda dengan orang lain dengan hanya menyalin URL.
Sistem Desain Braid (bertema)
Bumbag
Alat penambah kecepatan
Kubus (bertema)
Sistem desain jala (bertema)
Sistem Desain Mística (bertema)
Shopify Polaris
Sistem Desain Pertanian
Kirimkan PR kami jika Anda ingin berada di daftar ini!
$ NPM Instal-ruang bermain dev-dev
Tambahkan skrip berikut ke package.json Anda.json:
{"Scripts": {"ruang bermain: start": "ruang bermain start", "ruang bermain: build": "ruang bermain build"
}
} Tambahkan file playroom.config.js ke akar proyek Anda:
module.exports = {
Komponen: './src/Components',
outputpath: './dist/playroom',
// Opsional:
Judul: 'My Awesome Library',
Tema: './src/themes',
Cuplikan: './playroom/snippets.js',
Framecomponent: './playroom/framecomponent.js',
Lingkup: './playroom/usescope.js',
Lebar: [320, 768, 1024],
Port: 9000,
OpenBrowser: Benar,
ParamType: 'Search', // default adalah 'hash'
ExampleCode: `<button> halo dunia! </button> `,
Baseurl: '/ruang bermain/',
WebPackConfig: () => ({// konfigurasi webpack khusus ada di sini ...
}),
IFRAMESANDBOX: 'Izin-scripts',
DefaultVisibleWidths: [// Subset lebar untuk ditampilkan pada beban pertama
],
DefaultVisibethemes: [// Subset tema untuk ditampilkan pada beban pertama
],}; Catatan: Opsi port dan openBrowser akan diatur ke 9000 dan true (masing -masing) secara default setiap kali mereka dihilangkan dari konfigurasi di atas.
File components Anda diharapkan untuk mengekspor satu objek atau serangkaian ekspor bernama. Misalnya:
ekspor {default sebagai teks} dari '../text'; // mengekspor kembali ekspor default {tombol} dari '../button'; // mengekspor kembali ekspor bernama // dll ... Opsi iframeSandbox dapat digunakan untuk mengatur atribut sandbox di iframe ruang bermain. Diperlukan minimal allow-scripts agar ruang bermain berfungsi.
Sekarang proyek Anda dikonfigurasi, Anda dapat memulai server pengembangan lokal:
$ NPM Run Playroom: Mulai
Untuk membangun aset Anda untuk produksi:
$ npm run playroom: build
Ruang bermain memungkinkan Anda untuk dengan cepat memasukkan cuplikan kode yang telah ditentukan, memberikan pratinjau langsung di seluruh tema dan viewport saat Anda menavigasi daftar. Cuplikan ini dapat dikonfigurasi melalui file snippets yang terlihat seperti ini:
ekspor default [
{group: 'tombol', nama: 'kuat', kode: `<tombol bobot =" kuat "> tombol </aton>`,
},
// dll...]; Jika komponen Anda perlu bersarang di dalam komponen penyedia khusus, Anda dapat memberikan file komponen reaksi khusus melalui opsi frameComponent , yang merupakan jalur ke file yang mengekspor komponen. Misalnya, jika pustaka komponen Anda memiliki banyak tema:
impor bereaksi dari 'react'; import {themeProvider} dari '../path/to/your/theming-system'; export fungsi default frameComponent ({tema, anak-anak}) {
return <themeProvider tema = {tema}> {anak -anak} </themeprovider>;} Anda dapat memberikan variabel tambahan dalam ruang lingkup JSX Anda melalui opsi scope , yang merupakan jalur ke file yang mengekspor kait useScope yang mengembalikan objek lingkup. Misalnya, jika Anda ingin mengekspos variabel theme berbasis konteks kepada konsumen ruang bermain Anda:
Impor {usetheme} dari '../path/to/your/theming-system'; export fungsi default usescope () {
return {tema: useTheme (),
}; Jika perpustakaan komponen Anda memiliki banyak tema, Anda dapat menyesuaikan ruang bermain untuk membuat setiap tema secara bersamaan melalui opsi konfigurasi themes .
Mirip dengan file components Anda, file themes Anda diharapkan untuk mengekspor satu objek atau serangkaian ekspor bernama. Misalnya:
Ekspor {Themea} dari './themea';Export {haph} dari' ./themeb';// dll ... Jika file tsconfig.json hadir dalam proyek Anda, tipe prop statis diuraikan menggunakan react-docgen-typescript untuk memberikan pelengkapan autokel yang lebih baik di editor ruang bermain.
Secara default, semua file .ts dan .tsx di direktori kerja saat ini disertakan, tidak termasuk node_modules .
Jika Anda perlu menyesuaikan perilaku ini, Anda dapat memberikan opsi typeScriptFiles di playroom.config.js , yang merupakan array Globs.
module.exports = {
// ...
TypeScripSFiles: ['src/komponen/**/*. {ts, tsx}', '! **/node_modules'],}; Jika Anda perlu menyesuaikan opsi parser, Anda dapat memberikan opsi reactDocgenTypescriptConfig di playroom.config.js .
Misalnya:
module.exports = {
// ...
ReactDocgentypescriptConfig: {propfilter: (prop, component) => {// ...},
},}; Playroom mendukung memuat file konfigurasi ESM. Secara default, ruang bermain akan mencari file konfigurasi ruang bermain dengan ekstensi file .js , .mjs atau .cjs .
Jika Anda tertarik untuk mengintegrasikan ruang bermain ke dalam buku cerita, lihat Storybook-Addon-Playroom.
Ruang bermain dibangun untuk mengerjakan versi stabil terbaru dari semua browser utama. Beberapa fitur mungkin tidak berfungsi seperti yang diharapkan di browser yang lebih tua.
Mit.