Skip to content

contentful/forma-36

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4,155 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Forma 36 - The Contentful Design System

Contentful All Contributors

Forma 36 is an open-source design system by Contentful created with the intent to reduce the overhead of creating UI by providing tools and guidance for digital teams building and extending Contentful products

Table of contents

Creating new packages

We use Plop to create scripts that help you to scaffold new packages. In the root of the repo, you can run npm run-script generate. Then follow the steps in the CLI. Plop will generate the relevant files and add the relevant imports and exports to the main src/index.ts file required to make the component available when publishing the library. Read more about contribution to Forma 36.

Development

For local development, in the root of the repo run npm i to install all dependencies and then npm run-script build to build all packages. Now follow the instructions of the specific package youโ€™re working on. You will find each packageโ€™s instructions in their README files, check the Packages section for a list of all packages.

In case you are having problems to install the dependencies, try using NVM to get the same node version we use by running nvm use in the root of the repo

Storybook for f36-components

We use storybook with our react component library to develop components. You can start it from the root of the repo, just run npm run-script storybook after building.

Commits & releases

Use npm run-script commit. This uses the Commitzen CLI to create a conventional commit message based on your changes. CI is setup to release all new commits on the main branch that contains a new changeset.

Read more about changeset here

Deprecation process

We follow a structured deprecation process to ensure smooth transitions when components, props, and features are being phased out. Deprecations are announced at least one major version in advance, with clear migration paths and runtime warnings.

Read more about our deprecation guidelines here

Testing with your own project locally

You can test changes to a package of this monorepo in your own project locally by taking the following steps:

  1. Run npm run-script build in the desired package's directory to ensure your latest changes have been built
  2. Run npm link in the desired package's directory
  3. Change to your local project's directory and run npm link NAME_OF_PACKAGE to link to the local version of the package (e.g. npm link @contentful/f36-components)

Get involved

PRs Welcome

We appreciate any help on our repositories. For more details about how to contribute to a package, see the README of the corresponding package.

Reach out to us

You can reach out to us using the Contentful Community Discord.

You found a bug or want to propose a feature?

Create an issue using one of the templates File an issue. Make sure to remove any credential from your code before sharing it.

License

This repository is published under the MIT license. The Geist typeface included in this repository is covered by its own license.

Code of Conduct

We want to provide a safe, inclusive, welcoming, and harassment-free space and experience for all participants, regardless of gender identity and expression, sexual orientation, disability, physical appearance, socioeconomic status, body size, ethnicity, nationality, level of experience, age, religion (or lack thereof), or other identity markers.

Read our full Code of Conduct.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

Mike Mitchell
Mike Mitchell

๐Ÿ’ป ๐Ÿšง
Johannes Bugiel
Johannes Bugiel

๐Ÿ’ป ๐Ÿšง
Gui Santos
Gui Santos

๐Ÿ’ป ๐Ÿšง ๐Ÿ“–
Moe Shaaban
Moe Shaaban

๐Ÿ’ป ๐Ÿšง ๐Ÿ“–
Patrycja Radaczyล„ska
Patrycja Radaczyล„ska

๐Ÿ’ป ๐Ÿšง ๐Ÿ“–
Dominik Markuลกiฤ‡
Dominik Markuลกiฤ‡

๐ŸŽจ ๐Ÿ“–
Kristoffer
Kristoffer

๐Ÿ’ป ๐Ÿšง ๐Ÿ“–
Alexander Suevalov
Alexander Suevalov

๐Ÿ’ป ๐Ÿšง
Gracegross
Gracegross

๐ŸŽจ
Miretxu
Miretxu

๐Ÿ’ป
Tanya Bessonova
Tanya Bessonova

๐Ÿ’ป
John Whiles
John Whiles

๐Ÿ’ป
Guilherme Barbosa
Guilherme Barbosa

๐Ÿ’ป
Marco Link
Marco Link

๐Ÿ’ป
David Fateh
David Fateh

๐Ÿ’ป
Bruce Felt
Bruce Felt

๐Ÿ’ป
Daniel Vasylenko
Daniel Vasylenko

๐Ÿ’ป
kdamball
kdamball

๐Ÿ’ป
MarkusLaut
MarkusLaut

๐Ÿ’ป
Andreas Hรถrnicke
Andreas Hรถrnicke

๐Ÿ’ป
ChidinmaOrajiaku
ChidinmaOrajiaku

๐Ÿ’ป
Andi Pรคtzold
Andi Pรคtzold

๐Ÿ’ป ๐Ÿ›
Wiktoria Dalach
Wiktoria Dalach

๐Ÿ’ป
Joshua Smock
Joshua Smock

๐Ÿ’ป
Yiotis Kaltsikis
Yiotis Kaltsikis

๐Ÿ’ป
Azer Koรงulu
Azer Koรงulu

๐Ÿ’ป
taye
taye

๐Ÿ’ป
dannyiacono
dannyiacono

๐Ÿ’ป
Grant Sauer
Grant Sauer

๐Ÿ’ป
Joรฃo Ramos
Joรฃo Ramos

๐Ÿ’ป
Ante Sepic
Ante Sepic

๐Ÿ’ป ๐Ÿ›
Blair Rampling
Blair Rampling

๐Ÿ’ป
Daniel A. R. Werner
Daniel A. R. Werner

๐Ÿ’ป
Sergii Bezliudnyi
Sergii Bezliudnyi

๐Ÿ’ป
Manuel Spagnolo
Manuel Spagnolo

๐Ÿ’ป
Mohamed Turki
Mohamed Turki

๐Ÿ’ป
Ahmed T. Ali
Ahmed T. Ali

๐Ÿ’ป
Bruno Russi Lautenschlager
Bruno Russi Lautenschlager

๐Ÿ’ป
Chris Towler
Chris Towler

๐Ÿ’ป ๐Ÿ›
Christoph Grabo
Christoph Grabo

๐Ÿ’ป
Colton Colcleasure
Colton Colcleasure

๐Ÿ’ป
Connor Bรคr
Connor Bรคr

๐Ÿ’ป
Danil Zakablukovskii
Danil Zakablukovskii

๐Ÿ’ป
Dominic Bonnice
Dominic Bonnice

๐Ÿ’ป
Khaled Garbaya
Khaled Garbaya

๐Ÿ’ป
Stefan Judis
Stefan Judis

๐Ÿ’ป
Thomas Jaggi
Thomas Jaggi

๐Ÿ’ป
Turcan Vladimir
Turcan Vladimir

๐Ÿ’ป
V. Milone
V. Milone

๐Ÿ’ป
Aris Plakias
Aris Plakias

๐Ÿ’ป
Kam Figy
Kam Figy

๐Ÿ›
Peter Wielander
Peter Wielander

๐Ÿ’ป ๐Ÿ›
Felix Boenke
Felix Boenke

๐Ÿ›
damienxy
damienxy

๐Ÿ’ป ๐Ÿ›
Nika Zawila
Nika Zawila

๐Ÿ’ป ๐Ÿšง ๐Ÿ“–
Sarah
Sarah

๐Ÿ“–
th1nkgr33n
th1nkgr33n

๐Ÿ›
Thomas Kellermeier
Thomas Kellermeier

๐Ÿ› ๐Ÿ’ป
Ikko Ashimine
Ikko Ashimine

๐Ÿ“–
Anil Kumar krishanshetty
Anil Kumar krishanshetty

๐Ÿ’ป ๐Ÿ“–
Renato Massao Yonamine
Renato Massao Yonamine

๐Ÿ’ป
Charlie Chrisman
Charlie Chrisman

๐Ÿ›
Jan van den Berg
Jan van den Berg

๐Ÿ’ป
SirGavin
SirGavin

๐Ÿ›
Kathrin Holzmann
Kathrin Holzmann

๐Ÿ’ป ๐Ÿšง
Bohdan Hutsol
Bohdan Hutsol

๐Ÿ’ป ๐Ÿšง
Gary Hepting
Gary Hepting

๐Ÿ› ๐Ÿ’ป
Rowadz
Rowadz

๐Ÿ’ป
Maxim Cheremisin
Maxim Cheremisin

๐Ÿ’ป
benomatis
benomatis

๐Ÿ“–
Wake1st
Wake1st

๐Ÿ’ป
Ridwan Ajanaku
Ridwan Ajanaku

๐Ÿ“–
Rรฉmy Lenoir
Rรฉmy Lenoir

๐Ÿšง ๐Ÿ’ป ๐Ÿ“–
Wojciech Maj
Wojciech Maj

๐Ÿ› ๐Ÿ’ป
Lillian Bitner
Lillian Bitner

๐Ÿšง ๐Ÿ’ป ๐Ÿ“–
Lisa White
Lisa White

๐Ÿšง ๐Ÿ’ป ๐Ÿ“–
Eddie Chung
Eddie Chung

๐Ÿšง ๐Ÿ’ป ๐Ÿ“–
Marouen Ben Salem
Marouen Ben Salem

๐Ÿ’ป ๐Ÿ“– ๐Ÿ›
Kudakwashe Mupeni
Kudakwashe Mupeni

๐Ÿ’ป
Marta Sierosล‚awska
Marta Sierosล‚awska

๐Ÿ’ป
MayaGillilan
MayaGillilan

๐Ÿ’ป
Stephan Leece
Stephan Leece

๐Ÿ’ป ๐Ÿšง
Chris Helgert
Chris Helgert

๐Ÿ’ป ๐Ÿ“–
Andrei Tigai
Andrei Tigai

๐Ÿ’ป
Nkoyo Ating
Nkoyo Ating

๐Ÿ’ป
Joe Bingham
Joe Bingham

๐Ÿ’ป
Marc Mรผller
Marc Mรผller

๐Ÿ’ป

This project follows the all-contributors specification. Contributions of any kind welcome!

Packages

 
 
 

Contributors

โšก