Skip to content

Glossary

...

Attribute

It's a notation inside the HTML tag that provides additional information about HTML element. For the names of the attributes, we will always use kebab-case to follow the standard.

Complex attribute

It's an attribute that represents an object or an array. In order to properly write them down, the regular double quotes (") can be written with simple ones (') an the value of the attribute needs to be in JSON format

Flag

It's an attribute that represents a boolean, but can only be set to true. It's considered false when the attribute is not present. A good example of this is checked in HTML <input> tags.

All these examples consider wide as true, so the wide variant will be applied:

html
<z-button wide />
<z-button wide="" />
<z-button wide="true" />
<z-button wide="false" />
<z-button wide="" />

If you're using a framework, make use that the type of the flag is true | undefined, since false will still set the attribute, and HTML will consider it as an active flag. You can set the fallback with an OR (||) in the assignation of the attribute or when you are assigning the bound variable.

An example for the three main frameworks:

html
<z-text-input [invalid]="isInvalid || undefined"/> <!-- Angular -->

<z-text-input .invalid="isInvalid || undefined"/> <!-- Vue -->

<z-text-input invalid={isInvalid || undefined}/> <!-- React -->
Property

It's the attribute but the JavaScript class instance. Setting the value of the attribute will change the property, but not the other way around. Acting on a component, like an <input>, changes the property, but not the attribute. The pseudo-classes of CSS will follow the property and not the attribute, and that's why it is important to keep internal consistency in the components.

Shadow DOM

Provides a way to attach a hidden, separate DOM to an element. This shadow DOM tree starts with a shadow root, under which any element can be attached. This encapsulation allows the styling and scripting of web components to be isolated from the rest of the document, preventing conflicts and ensuring encapsulation.

HTML Templates

(<template> and <slot> elements). The <template> tag is used to declare fragments of HTML that can be cloned and inserted in the document by script. <slot> elements are placeholders inside your component that can be filled with any markup fragment that the user of your component provides.

Custom Elements

This allows developers to define their own custom HTML elements along with their behavior.

WebComponent

Web Components are a set of web platform APIs that allow developers to create custom, reusable, encapsulated HTML tags for use in web pages and web applications. They are based on four main technologies: custom clements, shadow DOM, and HTML Templates

Web Components enable a modular approach to web development by allowing developers to create new elements that extend the HTML language itself, encapsulating the functionality and styling of these elements, and reusing them across different web applications.

Wrapper

They are re framework-specific components that wrap a WebComponent and eases the use of these, making them usable as a framework native component.

CSS Custom Property

CSS Custom Properties, commonly referred to as CSS variables or CSS Tokens, are entities defined by CSS authors that contain specific values to be reused throughout a document. They follow the syntax --name: value;, where --name represents the custom property name, and value is the value assigned to it.

These properties can be accessed using the var(--name) function in other CSS properties. CSS Custom Properties enable more flexible and dynamic styling by allowing values to be changed or updated in multiple places by altering a single definition. This feature significantly enhances the maintainability and scalability of CSS code.

Slot

...

Slotted configuration

...