Glossary

Glossary

292 terms found

Search

:has()

CSS

A CSS functional pseudo-class that selects an element when a condition about its descendants or internal structure is true.

A form can use `form:has(:invalid)` to dim the submit button while any field is invalid.

:is()

CSS

A functional selector that groups multiple selector options into one rule while keeping the highest specificity among the arguments.

Instead of repeating three link rules, you can write `:is(header, main, footer) a` once.

:not()

CSS

A functional selector that excludes one or more matching cases from a broader rule.

A neutral button style can target `.button:not(.button--primary, .button--danger)` instead of creating extra helper classes.

:where()

CSS

A functional selector that groups selector options but always contributes zero specificity.

A base rule such as `:where(.card, .panel) h3` stays easy to override later.

2xx

JavaScript

Family of HTTP status codes that normally indicates a successful request.

A `201 Created` response belongs to the 2xx range.

4xx

JavaScript

Family of HTTP status codes that usually indicates a client-side problem with the request.

A `404 Not Found` response belongs to the 4xx range.

5xx

JavaScript

Family of HTTP status codes that usually indicates a server-side failure.

A `500 Internal Server Error` response belongs to the 5xx range.

Abbreviation

HTML

Shortened form of a term marked up with `abbr`, often expanded through a `title` attribute.

The abbreviation `DOM` can be marked up with `abbr` to clarify its expanded meaning.

Accept

JavaScript

Header that tells the server which response formats the client can handle.

A request can send `Accept: application/json` to ask for JSON data.

Accordion

HTML

Interface pattern that lets the user expand and collapse sections of content to reduce visual noise.

A FAQ block can use an accordion so learners only open the answer they need.

AJAX

JavaScript

Approach for sending asynchronous HTTP requests so parts of a page can update without a full reload.

A search box that shows suggestions while you type is often using an AJAX-style request flow.

Algorithm

Fundamentos de Programación

Finite sequence of clear ordered steps used to solve a problem or transform an input into an output.

An algorithm for calculating a total can receive price and quantity, multiply them and return the result.

Alt Text

HTML

Alternative description provided through the `alt` attribute of an image so its meaning is still available without sight or without the file loading.

A product photo should use alt text that explains what the image shows.

Anchor

HTML

HTML link element written with `a`, often used with `href` to create navigation targets.

An anchor can jump to `#faq` inside the same page.

Anchor Positioning

CSS

A modern CSS positioning model that lets one element align itself to another named element without manual JavaScript coordinate calculations.

A tooltip can use Anchor Positioning to stay attached to its trigger even when the layout shifts.

Animation Range

CSS

The CSS setting that defines which segment of a scroll or view timeline should drive an animation.

A reveal effect can begin at `entry 10%` and finish at `cover 30%` by adjusting its animation range.

API

JavaScript

Set of rules and endpoints that allows one system to communicate with another.

A frontend application can call an API to fetch products or save form data.

API Versioning

JavaScript

Strategy for evolving an API without breaking clients that depend on older behavior.

An API can expose `/v1/users` and `/v2/users` while teams migrate gradually.

ARIA

HTML

Accessibility attribute system that helps describe custom interface behavior to assistive technologies when native HTML is not enough.

A custom toggle may expose `aria-expanded="true"` so a screen reader knows its panel is open.

Array

Fundamentos de Programación

Structure that stores several related values in one ordered list.

An array can contain a student's grades or the names of several tasks.

Aspect Ratio

CSS

The proportional relationship between an element's width and height, often used to keep media blocks visually consistent.

A card grid can use a 4:3 aspect ratio so every image area stays aligned even when the original photos are different sizes.

attr()

CSS

A CSS function that reads an attribute value from the HTML and injects it into generated content.

A badge can use `content: attr(data-label)` to show a small status label.

Attribute

HTML

Extra information written inside an opening HTML tag to define details such as destination, type or description.

The `href` attribute tells a link where it should point.

Audio

HTML

HTML media element used to embed playable sound content in a page.

A narrated summary can be delivered through the `audio` element.

Auto Fit

CSS

A Grid repetition mode that collapses empty tracks and lets occupied ones stretch when extra space is available.

A card grid can use `repeat(auto-fit, minmax(220px, 1fr))` to adapt fluidly across screen sizes.

Autoprefixer

CSS

A build tool that adds the vendor prefixes still required by the browsers you support, based on your target configuration.

Instead of writing `-webkit-` rules by hand, a team can let Autoprefixer generate only the necessary prefixes.

Backdrop Filter

CSS

A CSS effect that processes the pixels behind an element, often used for frosted-glass panels and translucent overlays.

A translucent modal can use `backdrop-filter: blur(10px)` to soften the content behind it.

Background Clip

CSS

A property that controls how far the background is painted, for example inside the padding box or across the border box.

A gradient border effect can use `background-clip` logic to separate the fill area from the border area.

Background Layer

CSS

One of the stacked background declarations in CSS, where the first layer is painted on top and later layers sit underneath.

A hero can combine a dark gradient overlay, a photo and a solid fallback color as three background layers.

BEM

CSS

Block Element Modifier. Naming methodology for writing more predictable CSS classes.

`card__title--active` follows the BEM naming pattern.

Body

HTML

The part of an HTML document that contains the visible and interactive content of the page.

Headings, paragraphs and links belong in the body.

BOM

JavaScript

Browser Object Model. Collection of browser-specific objects such as `window`, `history` and `location`.

Reading `window.location.pathname` is interacting with the BOM.

Boolean

Fundamentos de Programación

Data type that can represent only two states: true or false.

A variable such as `userActive` can store `true` or `false`.

Bootstrap

CSS

A frontend framework that provides a responsive grid, utility classes and ready-made interface components for building web layouts quickly.

A team can use Bootstrap cards, spacing utilities and grid columns to assemble a dashboard without styling every pattern from scratch.

Border Image

CSS

A CSS feature that paints an element border using an image, SVG or gradient sliced into corners and edges.

A pricing card can use `border-image` with a gradient to create a richer frame than a flat border color.

Border Image Slice

CSS

The `border-image` parameter that controls how the source graphic is cut before being mapped onto the element border.

Gradients often start with `border-image-slice: 1`, while textured frames may need larger slice values.

Box Shadow

CSS

A CSS property that adds one or more shadows to an element using offset, blur, spread and color values.

A card can use a soft `box-shadow` to feel elevated above the page background.

Breakpoint

CSS

Screen width threshold where a responsive layout changes its rules.

A design can switch from one column to two columns after a tablet breakpoint.

Bridge to JavaScript

Fundamentos de Programación

Didactic connection between general programming fundamentals and their direct application in JavaScript.

Understanding variables and conditionals first makes JavaScript syntax feel much more natural later.

Browserslist

CSS

The shared configuration used by frontend tools to define which browsers and versions a project targets.

A project can tell PostCSS, Autoprefixer and bundlers to optimize for the same browser support matrix through Browserslist.

Bubbling

JavaScript

Phase of event propagation where an event moves from the target element back up through its ancestors.

A click on a button can bubble to its parent card and then to the document.

Calc()

CSS

A CSS math function used to combine compatible units in a single computed value.

A container can use `width: calc(100% - 2rem)` to keep side breathing room without extra wrappers.

Canonical URL

HTML

Preferred URL declared for a page when multiple similar URLs might exist.

A canonical link can point to the main course URL instead of a filtered variation.

Capturing

JavaScript

Phase of event propagation where an event travels from higher ancestors down toward the target element.

A listener registered for capture can run before the target phase of a click event.

Card Component

CSS

A reusable UI block that groups media, text and actions into one self-contained preview or information unit.

A course card can show a thumbnail, title, summary and CTA without forcing the user to open the full page first.

Cascade

CSS

The browser's conflict-resolution system for deciding which CSS rule wins when several affect the same element.

If two rules target the same button, the cascade decides which background color is used.

Cascade Layer

CSS

An ordered CSS layer declared with `@layer` that lets architecture determine priority before specificity is considered.

A utility class can beat a more specific selector if it lives in a higher-priority layer.

Checkbox Hack

CSS

A CSS interaction technique that uses a hidden checkbox or radio input plus selectors such as `:checked` to toggle visible UI state without JavaScript.

A basic mobile menu can open by styling `.menu` when a hidden checkbox becomes checked through its label.

Checker Pattern

CSS

A repeated Grid-based surface made of alternating cells, often used for technical or decorative backgrounds.

A checker pattern can be generated with Grid by repeating equally sized cells and varying opacity.

Chroma

CSS

The intensity or purity of a color in models such as OKLCH, separate from its lightness and hue.

Reducing chroma moves a vivid accent toward a calmer, grayer version of the same hue.

Clamp()

CSS

A CSS function that keeps a value fluid between a minimum and a maximum limit.

A heading can use `font-size: clamp(2rem, 1.4rem + 2vw, 3.5rem)` to scale smoothly without becoming too small or too large.

Class Selector

CSS

A selector that starts with a dot and targets all elements sharing a class name.

`.btn` is a class selector that can style every button with that reusable class.

Closure

JavaScript

Function that keeps access to variables from its lexical scope even after that outer scope has finished executing.

A counter function that remembers an internal `count` variable is using a closure.

Coarse Pointer

CSS

An input type detected by media queries that usually represents touch interaction and benefits from larger tap targets.

A button can gain extra padding under `@media (pointer: coarse)` for easier mobile interaction.

Code Splitting

JavaScript

Optimization technique that breaks a large JavaScript bundle into smaller chunks loaded on demand.

An admin panel can load chart-related code only when the charts page is opened.

Color

CSS

Use of color choices and relationships inside a visual system.

Poor contrast between foreground and background colors can hurt accessibility.

Color Palette

CSS

A coordinated set of colors selected to work together across the interface and often exported as reusable tokens.

A UI generator can export a palette with primary, secondary and neutral tokens for a design system.

Color Scheme

CSS

A browser hint exposed by the `color-scheme` property that tells the user agent whether the interface is designed for light, dark or both themes.

When a page sets `color-scheme: dark`, form controls and scrollbars can align better with the dark interface.

Component Library

CSS

A curated set of reusable interface components that helps teams build products with more consistency and less duplicated styling work.

Using a component library for cards, buttons and forms helps a product team move faster without redefining the same UI patterns on every screen.

Computational Thinking

Fundamentos de Programación

Way of analyzing complex problems through decomposition, patterns, abstraction and reproducible steps.

Breaking a booking system into login, validation, availability and confirmation is computational thinking.

Conditional

Fundamentos de Programación

Structure that lets a program choose one path or another depending on whether a condition is met.

A conditional can show access granted if age is 18 or above and denied otherwise.

Conditional CSS Function

CSS

A CSS function such as `if()` that chooses one value or another according to a logical condition.

A button can decide its background color from a variable instead of relying on separate status classes.

Conic Gradient

CSS

A gradient that rotates around a center point, useful for rings, charts and expressive circular effects.

A progress ring can use a `conic-gradient()` to represent completion visually.

Contain Intrinsic Size

CSS

A CSS property that provides a placeholder size for content whose real rendering work is being deferred.

A deferred comments section can reserve 600 pixels of space with `contain-intrinsic-size` so the page does not jump later.

Container Query

CSS

A CSS feature that lets a component adapt to the size of its own container instead of the global viewport.

A product card can switch to a two-column internal layout only when its parent container becomes wide enough.

Container Type

CSS

The CSS property that turns an element into a queryable container for its descendants.

A wrapper can use `container-type: inline-size` so the card inside reacts to the wrapper width.

Container Unit

CSS

A CSS length unit such as `cqi` or `cqw` that is measured relative to the size of a query container.

A widget title can use `3cqi` so the text grows with the width of the widget instead of the viewport.

Content Visibility

CSS

A CSS optimization feature that lets the browser skip layout and paint work for off-screen content until it gets close to the viewport.

A long article can defer heavy sections below the fold with `content-visibility: auto` to improve the initial render.

Content-Type

JavaScript

Header that describes the format of the request or response body.

When sending JSON, the client often sets `Content-Type: application/json`.

Cookie

JavaScript

Small piece of data stored by the browser and often used for sessions, preferences or tracking.

A site may store a session identifier in a cookie after login.

Core Web Vitals

HTML

A group of user-focused metrics that measure loading, visual stability and interaction quality.

Defining image dimensions helps improve Core Web Vitals by reducing layout shifts.

Cross Axis

CSS

The axis perpendicular to the main axis in Flexbox, used by properties such as `align-items`.

If a Flexbox container uses `flex-direction: column`, the cross axis becomes horizontal.

CSS

CSS

Cascading Style Sheets. Language used to style and visually organize web pages.

With CSS you can change colors, typography, spacing and responsive layout behavior.

CSS Containment

CSS

A group of CSS mechanisms that limit how much layout, paint or size calculation work an element can affect outside its own boundaries.

A complex widget can become cheaper to render when containment prevents it from forcing unnecessary recalculations elsewhere on the page.

CSS Mask

CSS

A CSS technique that controls which parts of an element remain visible by applying a mask image or gradient.

A spotlight reveal can use `mask-image: radial-gradient(...)` to keep only the center visible.

CSS Modules

CSS

A styling approach where class names are scoped locally to a component file so styles do not leak globally by default.

A button component can use a local `.button` class without worrying that another `.button` elsewhere in the project will collide with it.

CSS Nesting

CSS

A native CSS feature that allows related selectors to be written inside a parent rule, reducing repetition and grouping component logic more clearly.

A `.card` block can contain its nested heading and hover styles instead of repeating `.card` in separate rules.

CSS Reset

CSS

A baseline stylesheet that removes or reduces browser default styles so the project starts from a more controlled foundation.

A reset often removes default margins and applies `box-sizing: border-box` globally.

CSS Rule

CSS

A block made of a selector plus one or more declarations that define how matching elements should look.

`.card { padding: 1rem; }` is a CSS rule.

CSS Selector

CSS

The part of a CSS rule that decides which HTML elements the declarations apply to.

`.featured` is a selector that targets every element with that class.

CSS Shape

CSS

A geometric form built with CSS properties such as borders, gradients, border radius or transforms instead of using an image asset.

A triangle can be built with borders while a circle can come from `border-radius: 50%`.

Curated Resource List

CSS

An intentionally selected collection of references, tools and practice sites organized so developers can find the right learning or debugging source faster.

A curated resource list might point you to MDN for syntax, Can I Use for support and CodePen for quick experimentation.

Custom Property

CSS

A CSS variable declared with a `--name` syntax and consumed with `var(--name)`.

A button can read `var(--color-accent)` instead of hardcoding its background color.

Dark Mode Token

CSS

A theme variable such as background, surface or text color that changes between light and dark contexts.

Instead of styling each card twice, a project can switch `--surface` and let every component inherit the new tone.

Data Type

Fundamentos de Programación

Classification that tells the program what kind of value it is handling and how that value should be interpreted.

Storing 25 as a number is not the same as storing "25" as text.

Datalist

HTML

Element that provides suggested values for an input without forcing the user into a closed selection.

A brand field can suggest car manufacturers through a datalist.

Debounce

JavaScript

Pattern that delays a function call until activity stops for a defined amount of time.

A search input can debounce requests so the API is called only after the user pauses typing.

Debugging

Fundamentos de Programación

Process of finding, understanding and fixing errors in a program by observing what actually happens during execution.

If the output is wrong, debugging means tracing the program until you find where it went off track.

Definition List

HTML

List created with `dl` to pair terms with their explanations.

A short glossary can be marked up as a definition list.

DELETE

JavaScript

HTTP method commonly used to remove a resource on the server.

A `DELETE /tasks/8` request can remove one task from a list.

Design Token

CSS

A reusable named value that represents a design decision such as color, spacing, radius or typography.

A token like `--space-md` can be reused across cards, forms and modals to keep spacing consistent.

Design Tokens

CSS

Named design variables for things like color, typography, spacing and border radius.

Variables such as `--color-primary` or `--space-4` are design tokens.

Disclosure Pattern

CSS

An interface pattern where hidden content is revealed on demand through a trigger such as a button, summary or toggle control.

A compact mobile menu built with `details` uses a disclosure pattern to reveal links only when the user asks for them.

Doctype

HTML

Declaration that tells the browser to interpret the document using modern HTML standards mode.

A modern page starts with `<!DOCTYPE html>`.

Document Flow

CSS

The normal order and spatial behavior the browser uses to lay out elements before special positioning or layout rules alter it.

A block element pushing the next element onto a new line is part of normal document flow.

DOM

JavaScript

Document Object Model. The browser representation of the HTML document as a tree of nodes that JavaScript can read and modify.

Changing the text of a heading with `textContent` is a DOM update.

Drop Shadow

CSS

A filter function that creates a shadow from the visible shape of an element instead of from its rectangular box.

An avatar PNG with transparency can use `drop-shadow()` so the shadow follows the real silhouette.

Easing Curve

CSS

The speed pattern of a transition or animation, expressed with keywords such as `ease` or with a custom `cubic-bezier()` curve.

A button hover can feel softer with `ease-out` than with a linear motion curve.

Element

HTML

A complete HTML unit made of a tag and, when applicable, its content and closing tag.

A heading element can contain the main title of a page section.

Elevation Token

CSS

A reusable shadow variable that represents one depth level in an interface, such as a base card state or a hover state.

A design system can define `--shadow-1`, `--shadow-2` and `--shadow-3` so every component uses the same elevation scale.

Endpoint

JavaScript

Specific URL where an API exposes a resource or an operation.

The endpoint `/api/orders` can return the order list.

Event Delegation

JavaScript

Pattern where a parent element handles events for its children through bubbling.

A task list can use one click listener on the `<ul>` instead of one listener per button.

Event Loop

JavaScript

Mechanism that coordinates the call stack, task queue and microtask queue in JavaScript runtimes.

It explains why a resolved promise callback usually runs before a `setTimeout(..., 0)` callback.

Exponential Backoff

JavaScript

Retry strategy where the waiting time grows after each failed attempt.

A request can wait 1 second, then 2, then 4 before trying again.

Express

JavaScript

Minimal framework for building web servers and APIs with Node.js.

You can use Express to create routes such as `/users` or `/posts` in a backend project.

Expression

Fundamentos de Programación

Combination of values, variables and operators that produces an evaluable result.

`price + shipping` is an expression that produces a total.

Feature Query

CSS

A conditional CSS query built with `@supports` that checks whether the browser understands a feature before applying related styles.

A layout can upgrade from Flexbox to Grid only when `@supports (display: grid)` is true.

Featured Tile

CSS

A block inside a repeating layout pattern that is intentionally given more size or emphasis than its neighbors.

A featured tile in a Flex pattern might use `flex-grow: 2` while the surrounding tiles use `flex-grow: 1`.

Fetch

JavaScript

Modern browser API used to make HTTP requests from JavaScript.

You can use `fetch('/api/products')` to retrieve a list of products from a server.

Fieldset

HTML

Form element used to group related controls into one semantic block.

Vehicle details in a form can be grouped inside a fieldset.

Flex Basis

CSS

The initial size of a flex item before free space is distributed or items are shrunk.

A card can use `flex: 1 1 180px` so `180px` acts as the preferred starting width.

Flex Wrap

CSS

A Flexbox property that decides whether items stay on one line or wrap onto multiple lines when space runs out.

A row of cards can use `flex-wrap: wrap` so items flow onto a new line on smaller screens.

Flexbox

CSS

CSS layout model designed to distribute space and align items inside one dimension efficiently.

Flexbox can center a button group with `justify-content` and `align-items`.

Fluid Layout

CSS

A layout approach that adapts continuously to available space instead of relying on fixed widths and too many rigid breakpoints.

A fluid layout can use `width: min(100% - 2rem, 1100px)` to stay flexible across devices.

Fluid Typography

CSS

A type sizing approach that scales smoothly across screen sizes, often using `clamp()` instead of abrupt jumps between breakpoints.

A main heading can use `clamp()` so it grows naturally from mobile to desktop.

Form

HTML

HTML structure used to collect and submit data entered by the user.

A registration form can ask for name, email and password.

FormData

JavaScript

Browser API that reads form fields and builds a data structure ready to send or transform.

You can turn a form into an object with `Object.fromEntries(new FormData(form).entries())`.

Frontend

HTML

Part of web development that runs in the browser and includes structure, styling and user-facing behavior.

The layout of a page and its interactive buttons are part of the frontend.

Function

Fundamentos de Programación

Reusable block of code that groups a specific task and can receive input data to produce a result.

A function can receive price and shipping and return the cart total.

Gallery Layout

CSS

A visual arrangement system for groups of images or media items, usually designed to balance consistency, scanning speed and rhythm.

A gallery layout built with Grid can adapt the number of columns automatically while keeping the thumbnails evenly spaced.

Global Attribute

HTML

Attribute that can be used on many HTML elements, such as `id`, `class`, `title`, `hidden` or `data-*`.

A `class` attribute can be shared across several cards to apply the same styling pattern.

Graceful Degradation

JavaScript

Approach where a rich experience is built first and then degrades acceptably in less capable environments.

An advanced animation might fall back to a simpler visual effect in an older browser.

Gradient Token

CSS

A reusable CSS variable that stores a gradient declaration so the same visual treatment can be reused across components.

A project can define `--gradient-main` once and reuse it in heroes, buttons and badges.

Grid

CSS

Layout system that organizes content into rows and columns.

CSS Grid can build complex card layouts with explicit control over tracks and gaps.

Grid Area

CSS

A rectangular section of a Grid layout that can span multiple cells and be named for easier placement.

A page layout can define `header`, `sidebar` and `content` as named Grid areas.

Grid Density

CSS

The perceived compactness of a Grid pattern based on track count, cell size and gap.

Reducing cell size and gap increases the density of a technical background pattern.

Grid Track

CSS

The space between two adjacent Grid lines, forming one row or one column in the layout.

A layout with three columns has three column tracks separated by Grid lines.

Hamburger Menu

CSS

A compact mobile navigation trigger typically represented by three horizontal lines.

On narrow screens, a navbar can replace the visible links with a hamburger button that opens the menu.

Head

HTML

The document section that stores metadata such as title, charset, viewport settings and linked resources.

The page title lives in the head, not in the visible body content.

Heading

HTML

A structural title element such as `h1` to `h6` that defines hierarchy inside the page.

An `h1` often names the main topic of the page.

Hoisting

JavaScript

JavaScript behavior where declarations are processed before code execution reaches their line.

A function declaration can often be called before its visible position in the file.

HTML

HTML

HyperText Markup Language. Markup language used to structure content on the web.

Tags such as `<header>`, `<nav>` and `<footer>` define the structure of a page.

HTTP Status Code

JavaScript

Numeric code returned by a server to explain the outcome of an HTTP request.

A response with code 200 usually means the request succeeded.

Iframe

HTML

HTML element used to embed another browsing context, such as a video player or external page.

A YouTube video can be embedded with an iframe and a descriptive title.

Index

Fundamentos de Programación

Numeric position of an element inside an array.

In an array of three tasks, the first element usually lives at index 0.

Infinite Loop

Fundamentos de Programación

Loop that never reaches a real stopping condition and keeps running without ending.

If a `while` loop never updates its counter, it can repeat forever.

Inline SVG

CSS

An SVG embedded directly in the HTML markup so its internal shapes can be targeted with CSS and JavaScript.

An inline SVG icon can change `fill` on hover without swapping image files.

Input

HTML

Form control element used to capture user data such as text, email, numbers or passwords.

An email input can trigger browser validation when the address format is invalid.

Inset Shorthand

CSS

A CSS shorthand that combines `top`, `right`, `bottom` and `left` into one property.

A modal can use `inset: 0` instead of four separate offset declarations.

Interpolate-size

CSS

A CSS property that allows transitions and animations to interpolate intrinsic size keywords such as `auto`.

An accordion can animate from `height: 0` to `height: auto` without using a fake `max-height` workaround.

Intrinsic Size Keyword

CSS

A size value such as `auto`, `min-content` or `max-content` that depends on layout and content rather than a fixed numeric length.

A panel that expands to `auto` is using an intrinsic size keyword instead of a hard-coded pixel height.

ITCSS

CSS

Inverted Triangle CSS. Method for structuring styles from generic, low-specificity layers to specific component rules.

ITCSS can place resets and tokens first, and component-level rules later.

Iteration

Fundamentos de Programación

Each individual repetition performed by a loop during its full cycle.

If a loop counts from 1 to 3, it performs three iterations.

JavaScript

JavaScript

Programming language used to add logic, behavior and interactivity to web pages and web applications.

A form that validates user input in real time is using JavaScript.

JSON

JavaScript

Lightweight data format used to exchange structured information between applications.

APIs often return product lists or user data in JSON format.

Keyboard Input

HTML

Inline semantic representation of a key or shortcut, usually marked up with the `kbd` element.

The shortcut `Ctrl + S` can be shown with `kbd` elements.

Keyframes

CSS

Named animation steps defined with `@keyframes` that describe how properties change over time.

A pulse effect can define states at 0%, 50% and 100% inside a `@keyframes` block.

Label

HTML

Text element associated with a form control so users know what information the field expects.

A label reading `Email` should be connected to the email input.

Layered Shadow

CSS

A shadow composed of multiple `box-shadow` layers with different blur, spread and opacity values to create more realistic depth.

A modal can use one tight shadow and one wider diffuse shadow to feel lifted without looking harsh.

Lazy Loading

JavaScript

Technique that delays loading code or assets until they are actually needed.

A gallery can defer heavy images until the user scrolls near them.

Legend

HTML

Caption-like label that names the purpose of a `fieldset` group.

A legend such as `Vehicle details` helps explain what the grouped fields are about.

Linear Gradient

CSS

A gradient that transitions colors along a straight line and is often used for buttons, backgrounds and directional overlays.

A CTA can use `linear-gradient(135deg, #2563eb, #7c3aed)` as its background.

Link

HTML

Navigational connection created in HTML so users can move to another page, resource or section.

A link can take the user from the homepage to the HTML course page.

List

HTML

Structured group of related items represented in HTML with list elements such as `ul`, `ol` or `dl`.

A syllabus overview can be marked up as a list of lessons.

Literal

JavaScript

Direct value written in code, such as a string, number, array or object.

`42`, `'hello'` and `{ active: true }` are all literals.

LocalStorage

JavaScript

Browser storage mechanism for persisting small string-based values across sessions.

A theme preference can be saved in `localStorage` so it survives a page reload.

Logic Integration

Fundamentos de Programación

Combination of several programming concepts inside one problem so it can be solved completely.

A challenge can integrate variables, conditionals, loops and functions to process a data set.

Loop

Fundamentos de Programación

Structure that repeats an action or block of code while a rule remains true or until a traversal is complete.

A loop can display the numbers from 1 to 5 without writing the same line five times.

Main Axis

CSS

The primary direction in a Flexbox layout, determined by `flex-direction`, along which `justify-content` distributes items.

In a default row layout, the main axis runs horizontally from left to right.

Mask Image

CSS

The property that defines the image or gradient used to mask the visibility of an element.

A card image can fade out at the bottom with `mask-image: linear-gradient(...)`.

Max()

CSS

A CSS function that resolves to the largest value from the list you provide.

A sidebar can use `max(220px, 24vw)` so it never becomes too narrow.

Media Query

CSS

A CSS rule that applies styles only when a condition such as width, orientation or user preference is true.

A layout can switch from one column to two with `@media (width >= 768px)`.

Meta Description

HTML

Metadata summary that describes the page for search and preview contexts.

A meta description can summarize a course page in one concise sentence.

Metadata

HTML

Information about the document that helps browsers, search engines and tools understand how the page should be handled.

Charset and viewport tags are metadata stored in the head.

Meter

HTML

Element that represents a value within a known range, such as quality, risk or battery level.

A battery indicator can be marked up with `meter` instead of `progress`.

Micro-interaction

CSS

A small animated response that gives feedback during a focused user action such as hover, click or focus.

A card that lifts by 2 pixels on hover is using a micro-interaction to signal interactivity.

Microtypography

CSS

Small typographic refinements such as line length, underline offset, decoration thickness or letter spacing that improve readability.

Adjusting `text-underline-offset` can make links clearer without making the paragraph look noisy.

Min()

CSS

A CSS function that resolves to the smallest value from the list you pass in.

A page shell can use `min(100% - 2rem, 1200px)` to stay fluid but capped.

Mini Project

Fundamentos de Programación

Small but complete exercise that brings several learning pieces together into one functional, verifiable artifact.

A console task list can act as a mini project for arrays, functions and conditionals.

Mixin

CSS

A reusable Sass block that groups multiple declarations and can optionally accept arguments before being included in components.

A button system can use one mixin for padding, radius and font weight instead of repeating those declarations in every variant.

Mobile First

CSS

A responsive strategy where small-screen styles are written as the base layer and larger layouts are added progressively.

A card list can start with one column by default and expand to two or four columns at wider breakpoints.

Mobile-First

CSS

Design approach that starts with the smallest screens and progressively enhances larger layouts.

A mobile-first stylesheet defines the base layout for phones and adds larger breakpoints later.

MutationObserver

JavaScript

Browser API that watches DOM changes and lets your code react to them.

A widget can observe when new items are inserted into a list and update counters automatically.

NaN

JavaScript

Special JavaScript value that means Not a Number.

Trying to convert an invalid numeric string can produce `NaN`.

Navbar Toggler

CSS

The button that opens and closes a collapsed navigation menu in responsive layouts.

A navbar toggler should update `aria-expanded` as the menu opens and closes.

Nesting Selector

CSS

The `&` symbol used in nested CSS to reference the current parent selector.

Inside a button block, `&:hover` refers to the hover state of that same button.

NodeList

JavaScript

Collection of DOM nodes returned by methods such as `querySelectorAll()`.

A `NodeList` of buttons can be looped through to attach behavior or update classes.

Normal Flow

CSS

The default layout behavior in which elements take up space and influence the placement of other elements around them.

A relatively positioned element still keeps its original place in the normal flow even after a visual offset.

Normalize.css

CSS

A popular stylesheet that preserves useful browser defaults while smoothing common inconsistencies across rendering engines.

A team may choose normalize.css instead of a full reset to keep form and heading defaults more intact.

Null

Fundamentos de Programación

Value used intentionally to show that there is currently no data or that a value is empty on purpose.

A profile can have `avatar = null` if no image has been uploaded yet.

Object

Fundamentos de Programación

Structure that groups several related properties to represent one entity or real-world thing.

A `user` object can keep a name, age and access state inside one structure.

Off-canvas Navigation

CSS

A navigation pattern where the menu lives outside the visible screen and slides in when activated.

A mobile panel can start with `transform: translateX(100%)` and slide in from the right when the menu opens.

Offset Pagination

JavaScript

Pagination model where the client requests items using an offset and a limit.

A request such as `?offset=40&limit=20` asks for the next block of 20 items after the first 40.

OKLCH

CSS

A modern CSS color space based on Lightness, Chroma and Hue, designed to behave more consistently with human perception.

A palette can keep the same lightness and chroma while rotating the hue to produce equally balanced accents.

OOCSS

CSS

Object-Oriented CSS. Methodology that encourages reusable styling patterns and separation of structure from skin.

OOCSS might define one reusable object for layout and another for theme styling.

Operator

Fundamentos de Programación

Symbol or keyword that performs an operation on one or more values.

The `+` symbol is an operator that can add numbers or join text depending on context.

Optical Size

CSS

A variable-font axis that adjusts letterforms for better readability at different rendered sizes.

A typeface with an `opsz` axis can look sharper in small UI labels and more elegant in large headings.

Ordered List

HTML

List created with `ol` when the sequence of the items matters.

A step-by-step tutorial usually uses an ordered list.

Output

Fundamentos de Programación

Observable result that a program returns after processing the input.

Showing a total on the screen or printing a console message is output.

Overlay

CSS

A visual layer placed on top of media or content to reveal extra information, controls or emphasis.

A portfolio card can show an overlay with the project title and CTA only when the user hovers the image.

Pagination

JavaScript

Technique that divides large result sets into smaller pages instead of loading everything at once.

An ecommerce grid can show 20 products per page with next and previous controls.

Paragraph

HTML

A block of text represented with the `p` element, usually used for one coherent idea or reading unit.

A long article is easier to read when its text is split into paragraphs.

Parameter

Fundamentos de Programación

Name a function uses to represent the data it receives when it runs.

In `function greet(name)`, `name` is a parameter.

Partial

CSS

A Sass file meant to be imported into other Sass files so styles can be split into smaller, organized modules.

A project might keep color tokens in one partial and button patterns in another to make the styling architecture easier to maintain.

PATCH

JavaScript

HTTP method commonly used to apply a partial update to an existing resource.

A `PATCH /profile` request can update only the user's avatar without replacing the whole profile.

Pattern Rhythm

CSS

The repeated visual cadence created by varying size, spacing or emphasis across a layout pattern.

A Flex pattern can increase the grow value every third item to create a repeating visual rhythm.

Perspective

CSS

A CSS property that controls how strong the illusion of depth looks in 3D transformed elements.

A flipping card often uses `perspective: 1000px` on the parent to create a readable 3D effect.

Place Items

CSS

A Grid shorthand that combines `align-items` and `justify-items` to align content inside each grid area.

A modal wrapper can use `place-items: center` to center its child in both axes with one declaration.

Polyfill

JavaScript

Code that adds support for a modern feature in environments that do not implement it natively.

A polyfill can provide `Array.prototype.includes` in an older browser.

Popover API

CSS

A browser API for showing and hiding lightweight overlays such as menus, panels or floating UI without building every behavior from scratch.

A mobile menu can use the Popover API to open and close a panel with native behavior instead of a custom toggle system.

Position Anchor

CSS

The CSS relationship created when an overlay points to a named anchor element with `position-anchor`.

A help bubble can declare `position-anchor: --help-button` so its coordinates come from the related button.

Positioned Ancestor

CSS

The nearest ancestor with a non-static `position` value, used as the reference point for absolutely positioned descendants.

A badge with `position: absolute` usually needs a card parent with `position: relative` to anchor itself correctly.

Positioning Context

CSS

The reference box an absolutely positioned element uses to calculate where it should appear.

A badge inside a card can align to the card corners when the card creates a positioning context with `position: relative`.

PostCSS

CSS

A CSS processing tool that transforms stylesheets during the build step through a plugin-based pipeline.

A project can use PostCSS to add prefixes, enable modern syntax and optimize output without changing the authoring workflow.

postcss-preset-env

CSS

A PostCSS plugin bundle that lets you use modern CSS features and converts them into a more compatible output based on your target environment.

A team can write future-friendly CSS while `postcss-preset-env` handles the necessary fallback transformations in the build.

Preserve-3d

CSS

The `transform-style` value that allows child elements to keep their 3D position instead of being flattened.

Without `transform-style: preserve-3d`, the two faces of a 3D card often collapse into the same plane.

preventDefault

JavaScript

Method on the event object that stops the browser's default action for that event.

Calling `preventDefault()` on a form submit lets you validate before a real request is sent.

Process

Fundamentos de Programación

Transformation or set of rules that a program applies to an input in order to produce an output.

Adding prices, validating a user or sorting a list are all part of a program's process.

Program

Fundamentos de Programación

Set of instructions that a machine can execute to perform a specific task.

A calculator is a program that receives numbers, applies operations and shows a result.

Progress Bar

HTML

Element that represents how much of a task has been completed, usually marked up with `progress`.

A file upload can show 60 percent completion with a progress bar.

Progressive Enhancement

CSS

A strategy that starts from a solid, broadly compatible base and adds richer features only when the environment supports them.

A card grid can remain usable with Flexbox everywhere and become more refined with Grid in modern browsers.

Promise

JavaScript

Object that represents the future completion or failure of an asynchronous operation.

A `fetch()` call returns a promise that resolves when the response arrives.

Property

Fundamentos de Programación

Named piece of data that belongs to an object.

In a `product` object, `price` and `stock` are properties.

Property Registration

CSS

The act of defining a custom property with `@property` so the browser knows its type, inheritance behavior and initial value.

Registering `--angle` as an `<angle>` lets the browser animate a conic gradient more reliably.

Proxy

JavaScript

JavaScript object that intercepts operations on another object, such as reading or writing properties.

A proxy can log every property access on a configuration object for debugging.

Pseudo-element

CSS

A virtual CSS-generated element such as `::before` or `::after` that lets you add decorative boxes without changing the HTML.

A button can use `::after` to render an animated underline without adding extra markup.

Pseudocode

Fundamentos de Programación

Human-readable structured description of a solution before writing it in a real programming language.

Before coding a calculator, you can write: read numbers, add them and show the result.

PUT

JavaScript

HTTP method commonly used to replace or fully update a resource.

A `PUT /products/42` request may send the full product representation.

Race Condition

JavaScript

Bug that appears when the final result depends on which asynchronous operation finishes first.

Two overlapping searches can return out of order and display stale results if you do not control the flow.

Range Syntax

CSS

The modern media query syntax that expresses comparisons like `(width >= 768px)` or `(600px <= width <= 1024px)` more directly.

Range syntax makes it easier to read responsive rules than chaining `min-width` and `max-width` with `and`.

Rate Limiting

JavaScript

Restriction that limits how many requests or actions can happen in a given period.

An API might allow only 100 requests per minute from one client.

Reduced Data

CSS

A user preference exposed through `prefers-reduced-data` that suggests lighter assets and fewer bandwidth-heavy enhancements.

A landing page can hide a decorative hero video when reduced data is requested.

Reduced Motion

CSS

A user preference exposed through `prefers-reduced-motion` that signals the interface should minimize animation and transitions.

A site can disable parallax and long fades when a user prefers reduced motion.

Relational Selector

CSS

A selector pattern that styles an element according to its relationship with descendants or nearby structure rather than only matching the element directly.

A card that changes only when it contains an image is using a relational selector pattern.

Request Header

JavaScript

HTTP metadata sent with a request to describe how it should be processed.

An `Authorization` header can carry an access token when calling an API.

Responsive

CSS

Design approach where the interface adapts cleanly to different screen sizes and devices.

A responsive site remains readable on mobile, tablet and desktop screens.

Responsive Table

CSS

A table styled to remain usable on smaller screens through patterns such as horizontal scrolling or stacked rows.

A pricing table can sit inside a wrapper with `overflow-x: auto` so columns stay readable on mobile.

REST API

JavaScript

API style that organizes resources and operations around HTTP methods such as GET, POST, PUT and DELETE.

A REST API might expose `/products` to list items and `/products/42` to update one item.

Retry

JavaScript

Practice of repeating a failed request when the error may be temporary.

A client can retry a request after a transient network failure or a `503` response.

Return Value

Fundamentos de Programación

Value that a function sends back when it finishes so the rest of the program can reuse it.

A function can return the calculated total so another variable can store it.

Revert-layer

CSS

A CSS value that resets a property back to the value it would have had before the current layer applied its override.

A neutral button variant can use `color: revert-layer` to fall back to the base layered value.

Sass

CSS

CSS preprocessor that adds features such as variables, nesting and reusable logic.

Sass makes it easier to keep large style systems organized and maintainable.

Script Async

HTML

A script loading strategy that downloads in parallel and runs as soon as it is ready, without preserving order.

An analytics tag can use `async` because it does not need to wait for the main app bundle.

Script Defer

HTML

A script loading strategy that downloads in parallel but runs after HTML parsing finishes, preserving order.

The main app script often uses `defer` so it does not block the first render.

Scroll Snap

CSS

A CSS feature that lets scroll containers snap their content to defined positions, making sliders and horizontal galleries feel more controlled on touch devices.

A mobile slider can use `scroll-snap-type: x mandatory` so each slide settles cleanly instead of stopping between items.

Scroll Timeline

CSS

A timeline whose progress comes from the scroll position of a container instead of from elapsed time.

A reading bar can grow from 0 to 100% as the page scrolls because its animation follows a scroll timeline.

Selector Query

CSS

A support check written with `@supports selector(...)` to detect whether a browser understands a specific selector.

You can ask whether `:has()` is supported before relying on it in a component pattern.

Semantic HTML

HTML

Use of HTML elements according to their meaning and role instead of choosing them only for appearance.

Using `main`, `article` and `footer` is a semantic choice when those roles fit the content.

Serialization

JavaScript

Process of converting data structures into a format that can be stored or transmitted.

Turning an object into a JSON string before sending it over HTTP is serialization.

Shared Tracks

CSS

Parent Grid rows or columns that are reused by child components through `subgrid` so multiple modules follow the same guides.

Shared tracks help repeated cards align their headings, media and actions across the full row.

Sidebar Navigation

CSS

A lateral navigation pattern that keeps section links visible beside the main content, often used in documentation, dashboards or long lessons.

A course page can use sidebar navigation to show the current section and let the user jump quickly to another topic.

SMACSS

CSS

Scalable and Modular Architecture for CSS. System for organizing styles into clear categories.

SMACSS separates base, layout, module, state and theme layers.

SPA

JavaScript

Single Page Application. A web app that updates content dynamically without doing a full page reload on every interaction.

A dashboard that changes sections instantly while staying on one document is behaving like an SPA.

Spacing

CSS

Distribution of space between and inside interface elements.

Padding and margin are core CSS properties for spacing decisions.

Stacking Context

CSS

An isolated layering context that controls how `z-index` works among a set of elements.

A transformed parent can create a new stacking context, causing an internal `z-index: 999` to stay below elements outside it.

Sticky Footer

CSS

A page-layout pattern where the footer stays at the bottom of the viewport on short pages without overlapping content.

A documentation page with very little content can still keep its footer at the bottom by using a flex column layout and `margin-top: auto`.

Sticky Header

CSS

A header that remains visible near the top edge of the viewport while the page scrolls, usually through `position: sticky`.

A sticky header keeps the brand and main navigation available while the user reads a long article.

Sticky Threshold

CSS

The offset value, such as `top: 0`, at which a sticky element stops scrolling normally and starts sticking.

A sidebar with `position: sticky` and `top: 1rem` sticks once it reaches that 1rem threshold.

stopPropagation

JavaScript

Method on the event object that prevents an event from continuing its propagation through the DOM.

A nested button can stop a click from reaching a parent card listener.

Strict Mode

JavaScript

Restricted JavaScript mode that catches certain mistakes earlier and disables some risky legacy behaviors.

Strict mode throws when you assign to an undeclared variable instead of creating it implicitly.

Stroke Dasharray

CSS

An SVG stroke setting that defines the visible dash pattern along a path and is often paired with animation for draw effects.

A path can use `stroke-dasharray: 160` to prepare a line-drawing animation.

Structured Data

HTML

Machine-readable metadata, often provided with JSON-LD, that helps describe what the page content represents.

A course page can expose structured data that identifies it as a `Course`.

Style Query

CSS

A container query that reacts to a style value, such as a custom property, instead of reacting only to size.

A card can switch its layout when its container exposes a style variable like `--variant: 'compact'`.

Subgrid

CSS

A Grid feature that lets a child grid inherit the row or column tracks of its parent for tighter alignment across nested components.

A card list can use `subgrid` so all buttons align to the same baseline even when titles have different heights.

Table

HTML

HTML structure used to represent data organized in rows and columns.

A pricing comparison can be presented as a table with headers and body rows.

Table Caption

HTML

Short label that explains what a table represents as a whole.

A caption such as `Subscription plans` gives the whole table shared context.

Table Header

HTML

Header cell marked up with `th` to describe a row or column in a table.

A table header can define the meaning of the `Price` column.

Tag

HTML

The markup syntax used to define an HTML element, usually with an opening form and often a closing form.

The `p` tag defines a paragraph element.

Tailwind

CSS

Utility-first CSS framework for building custom interfaces quickly with small reusable classes.

A class such as `flex justify-center` applies layout behavior directly in the markup.

TDZ

JavaScript

Temporal Dead Zone. Period in which a `let` or `const` variable exists but cannot be accessed before its declaration line runs.

Reading a `let` variable before its declaration can throw a `ReferenceError` because of the TDZ.

Text Shadow

CSS

A CSS property that adds shadow to text, often to improve readability on images or expressive backgrounds.

A hero title on top of a gradient can use `text-shadow` to separate the letters from the backdrop.

Text Wrap Balance

CSS

A `text-wrap` value that distributes short text across lines more evenly to avoid awkward final lines.

A hero heading can use `text-wrap: balance` so the last line does not collapse into a single short word.

Text Wrap Pretty

CSS

A `text-wrap` value that improves paragraph endings by trying to avoid lonely final words.

An article intro can use `text-wrap: pretty` to reduce awkward orphaned words in the last line.

Throttle

JavaScript

Pattern that limits how often a function can run within a time interval.

A scroll handler can be throttled so it runs at most once every 100 milliseconds.

Thumbnail

CSS

A reduced visual preview image used inside cards, galleries or listings to represent larger content.

A gallery grid usually relies on thumbnails so users can scan many images quickly before opening one in full.

Timeout

JavaScript

Maximum time the client allows an operation or request to take before treating it as failed.

A fetch wrapper can cancel the request if no response arrives after 8 seconds.

Trace

Fundamentos de Programación

Step-by-step follow-up of execution order and program state to understand how a result is produced.

A simple trace records which step runs first, what is processed next and what output appears in the end.

Transform Origin

CSS

The pivot point around which a transformed element rotates, scales or skews.

A dropdown can feel more believable when it opens from `top center` instead of rotating from the middle.

Tree Shaking

JavaScript

Build optimization that removes unused exported code from the final bundle.

If you import only one helper from a module, tree shaking can avoid shipping the rest.

Type Scale

CSS

System of text sizes built on consistent proportions.

A page can define heading and body text through a modular type scale.

Typed Custom Property

CSS

A custom property whose value type has been declared explicitly, allowing validation and smoother interpolation.

A typed custom property can represent a percentage for a progress bar instead of an opaque text string.

Typography

CSS

Practice of choosing and organizing type to improve readability, hierarchy and tone.

A strong heading scale makes a page easier to scan.

Undefined

Fundamentos de Programación

Value that indicates a variable exists but does not yet hold an assigned value at that moment.

If you declare a variable without assigning anything, JavaScript may show it as `undefined`.

Unordered List

HTML

List created with `ul` when the order of the items does not matter.

A feature list often works well as an unordered list.

URLSearchParams

JavaScript

API for reading and building query string parameters in a structured way.

You can use `URLSearchParams` to read `?page=2&sort=price` from the current URL.

Utility-first

CSS

A styling philosophy that composes interfaces from many small single-purpose utility classes instead of relying mainly on custom semantic CSS selectors.

A card built with classes for spacing, color, border radius and shadow directly in the markup follows a utility-first approach.

Validation

JavaScript

Process of checking whether input data meets the expected rules before it is accepted or sent.

A signup form can validate that an email contains `@` and a password has a minimum length.

Validation Pseudo-class

CSS

A pseudo-class such as `:valid`, `:invalid` or `:required` that reflects native HTML form validation state.

An input can show a green border when `:valid` and a red one when `:focus:invalid`.

Variable

Fundamentos de Programación

Name that represents a value or state a program needs to store, read or update later.

In a counter, the variable can store how many times the user clicked.

Variable Font

CSS

A font file that contains a range of styles or axes, allowing fine-grained control over weight, width, slant or optical size.

Instead of loading several font files, a project can use one variable font and set `font-weight: 532` directly in CSS.

Vendor Prefix

CSS

A browser-specific prefix such as `-webkit-`, `-moz-` or `-ms-` added to a property or value during a feature rollout period.

Older Safari support for visual effects sometimes relied on a vendor prefix before the standard form was safe to use everywhere.

Video

HTML

HTML media element used to embed playable video content in a page.

A lesson recording can be embedded with the `video` element and native controls.

View Timeline

CSS

A scroll-linked timeline based on how a specific element enters, covers or exits the viewport or another scroll area.

A card can fade in only while it moves through the visible part of the page by using a view timeline.

View Transition

CSS

A browser-managed animation between an old UI state and a new one, usually triggered when content or navigation changes.

A route change can animate as a smooth slide instead of a hard visual swap by using a view transition.

View Transition Name

CSS

The CSS property used to identify a specific element so it can participate independently in a view transition.

A gallery image can keep visual continuity between states when both versions share the same view-transition name.

Viewport Anchor

CSS

A positioning relationship in which an element stays tied to the browser viewport instead of to the document flow or a local container.

A support button in the bottom-right corner often uses `position: fixed` as a viewport anchor.

Viewport Meta Tag

CSS

An HTML meta tag that tells mobile browsers to use the real device width so responsive layouts behave correctly.

Without the viewport meta tag, a phone may simulate a much wider layout and break your media query logic.

Visual Composition

CSS

The arrangement of shapes, layers and spacing so an interface element or illustration feels balanced and readable.

When drawing with CSS, visual composition matters as much as the individual shapes because the eye reads the whole scene together.

Web API

JavaScript

Browser-provided interface that extends JavaScript with capabilities such as networking, storage and DOM access.

`fetch`, `localStorage` and `MutationObserver` are examples of Web APIs.

Webpack

JavaScript

Bundler that analyzes project dependencies and produces optimized files for the browser.

Webpack can combine modules, split chunks and generate production-ready bundles.

Whitespace

CSS

Intentional empty space that improves readability, rhythm and visual hierarchy.

Increasing whitespace around a form can reduce visual clutter and cognitive load.

Will Change

CSS

A CSS hint that tells the browser which properties of an element are likely to change soon, so it can prepare internal optimizations in advance.

A card about to animate on hover can use `will-change: transform` to avoid a visible stutter at the start.

What is this?

I'm Cristian Eslava and I sometimes build websites so both you and I can learn and experiment. culTest

I made this in February 2026 to make learning easier for my students. The idea is to learn web development by practicing and to keep expanding the project with new topics, tests and challenges.

It draws inspiration from MDN, W3Schools, CodePen, Manz and many other web development references. I wanted to combine useful theory, runnable examples, challenges and the testing system I had already built for culTest. culTest

If you liked it, if you didn't, or if you want to get in touch, write to me at cristianeslava@gmail.com