Overview

Pronto is Imarc's front-end framework for websites and web applications.

It is open source, opinionated, and is built to be changed over configured, with an emphasis on the code being simple to read, maintain, and adapt to individual project needs.

Pronto uses Vite and Vitrine to provide this library of its components, that becomes part of your project. See Pronto's own site to see the latest components.

Organization

Pronto's components are organized following Atomic Design:

Every visual component should have its folder. Vue components, composables and directives have folders within resources/js/.

Naming Conventions

Pronto uses SCSS for all styles, and uses ABEM for class naming:

.blockName.-blockModifier
.blockName__elementName
.blockName__elementName.-elementModifier
.-modifierName.-modifierName-modifierValue

Custom Properties

Custom property names should use the following naming convention:

--prefix-property-name-suffix

Vue files

vDirectiveName.js
PComponentName.vue
useComposableName.js

Goals

Accessibility

Components within Pronto should be accessible and promote accessible development. Tags should be semantic.

Built to Change

CSS should be built primarily to be changed. In general, favor simple code over configuration through custom properties. JS components should be built to be style and layout agnostic, focused on extending and working with builtin browser functionality instead of recreating it. For example, prefer CSS animations, native dialog and popover behaviors. Avoid running JS unthrottled, whether through intervals or high volume events like resize.

Developer Experience

When making decisions, prefer the option that will be easier to for new developers to read and understand. If there is good reason to use a more complicated approach, make sure the approach and its justification are well documented.