Hey, there! 👋 We welcome all kinds of contributions, please feel free to contribute and/or ask questions.
- The design team have designed the UI AND COMPONENTS be sure to check them and develop accordinly.
A tech stack is the set of technologies an organization uses to build a web or mobile application. It is a combination of programming languages, frameworks, libraries, patterns, servers, design tools, and tools used by its developers.
- ⚛️ Gatsby [React + GraphQL + Webpack]: For building declarative component-centric UI and static websites
- 🖌️ Tailwindcss: For building rapidly custom designs
- 💥 PostCSS: For transforming CSS with JavaScript
- ✨ Prettier for automatic code formatting
- 📐 ESLint: For JavaScript linting
- 📦 npm: For distributing JavaScript libraries
- 🗃️ GitHub: Hosting service for version control
- 🚀 Netlify: For fast & continuous deployment
Conventions include generic patterns that ensure that written code adheres to certain formatting conventions.
- Tabs or two-space indentation
- Use shorthand for conditional statements
- Always open braces on the same line as the previous statement and close braces on the same indent as the original function like so:
function textComponent() {
return {
name: "OSCA",
}
}
- Constructor functions should use the TitleCase
- Variables, directories and methods should use the camelCase
- Variables or elements with multiple words should always use an underscore between words.
const user_params = null
- Private methods should start with a leading underscore to separate them from public methods
const _inputType = inputType
- Abbreviations should be avoided please to avoid confusion
- Comments should include enough information about what a part of code is supposed to do.
// Define default props of the TextBox component
TextBox.defaultProps = {
className: "",
disabled: false,
inputType: "text",
}
This project uses the BEM Methodology with camelCase style. Read the start guide here
BEM (Block, Element, Modifier) is a component-based approach to web development. The idea behind it is to divide the user interface into independent blocks
Naming Rules:
blockName__elementName_modifierName_modifierValue
- Names are written in lowercase Latin letters.
- Each word inside a name begins with an uppercase letter.
- The block name defines the namespace for its elements and modifiers.
- The element name is separated from the block name by a double underscore (__).
- The modifier name is separated from the block or element name by a single underscore (_).
- The modifier value is separated from the modifier name by a single underscore (_).
- For boolean modifiers, the value is not included in the name.