Cloudscape Design System
  • Get started
  • Foundation
  • Components
  • Patterns
  • Demos
  • GitHub 
Cloudscape Design System
  • Get started
  • Foundation
  • Components
  • Patterns
  • Demos
  • GitHub 
  • About

Patterns


  • General

    • Actions
      • Global actions
      • In-context actions
    • Announcing new features
    • Announcing beta and preview features
    • Communicating unsaved changes
    • Data visualization
      • Chart metric drill down
    • Density settings
    • Disabled and read-only states
    • Drag-and-drop
    • Errors
      • Error messages
      • Validation
    • Empty states
    • Feedback mechanisms
    • Filtering patterns
      • Saved filter sets
      • Filter persistence in collection views
    • Hero header
    • Help system
    • Image magnifier
    • Loading and refreshing
    • Onboarding
      • Hands-on tutorials
    • Selection in forms
    • Service navigation
      • Side navigation
      • Top navigation
    • Service Dashboard
      • Static dashboard
      • Configurable dashboard
      • Dashboard items
    • Secondary panels
    • Timestamps
    • User feedback
    • Variables

  • Generative AI patterns

    • Pattern abstraction
    • Generative AI chat
    • Ingress
    • Generative AI output label
    • Generative AI loading states
    • Progressive steps

  • Resource management

    • Create resource
      • Multipage create
      • Single page create
      • Sub resource create
    • Delete patterns
      • One-click delete
      • Delete with simple confirmation
      • Delete with additional confirmation
    • Edit resource
      • Page edit
      • Inline edit
      • Attribute editing
    • View resources
      • Table view
      • Card view
      • Split view
      • Table with expandable rows
    • Resource details
      • Details page
      • Details page with tabs
      • Details page as a hub
  1. Cloudscape Design System
    • Patterns
    • General: Variables
    1. Cloudscape Design System
    2. Patterns
    3. General: Variables

    Variables

    A pattern for using variables within structured content such as prompt templates, code snippets, and text with predefined formats.

    Published: June 27, 2025
    This pattern mentions unreleased component and features
    This pattern references Inline Token, which will be released as a variant of Token in Q3 2025. It also includes updates to Code View that are currently in our roadmap for 2025. For the latest status and release information, see the Token roadmap  and Code view roadmap .

    On this page

    1. Key UX concepts
    2. Types of variables
    3. Guidelines
    4. Writing guidelines
    5. Accessibility guidelines

    Did this page help you?

    Tell us more - optional

    1000 character(s) available. Do not disclose any personal, commercially sensitive, or confidential information.

    Key UX concepts

    Variables

    Variables are bits of information displayed inline within structured content like text or prompt templates. They can be plain text variables, interactive variables, or read-only variables.

    Displaying variables

    Variables are visually distinguished from their surrounding content by visual style, consistent syntax, or both. They can be displayed in read only or interactive states. Interactive variables should use clear, descriptive names to help users determine the type of input that is expected. For more about writing and displaying variables, see writing guidelines.

    Variables in templates

    Variables are essential building blocks of templates, enabling customization while preserving the template's structure. For example, templates used in generative AI workflows, where models are sensitive to word order and phrasing, variables allow users to modify specific elements without compromising the template's effectiveness. This controlled customization ensures consistent outputs, reduces errors, and enables templates to be reused across different contexts.

    Types of variables

    There are three distinct types of variables: Plain text variables, interactive variables, and read-only variables. Each type serves a specific purpose and offers unique characteristics in how they are represented and interacted with in an interface. Understanding these variable types helps create dynamic, interactive content effectively.

    Plain text variables

    Plain text variables are stateless variables that can be edited directly through standard text editing, denoted by angle brackets <>. In contexts where angle brackets might be confusing, use alternative syntax. They enable users to edit text associated with the variable directly within the form field they are displayed in. For example, in generative AI chat, a user can take advantage of a prompt template and quickly edit the variable to help generate their intended output before sending the prompt.

    Interactive variables

    Interactive variables utilize the Inline variant of the Token  component to provide distinct visual style and interactions when placed in context of surrounding content.

    Popover interaction

    This kind of interactive variable triggers a popover where users can edit the variables through a simple form field or selection without navigating to a separate area within the UI. This kind of interaction is best suited for variables where a single form field or selection are required.

    Read-only variables

    Read-only variables are used to highlight bits of information from surrounding content. For example, in a code snippet, highlighting the key parameters show users where specific values can be edited when using the snippet.

    Guidelines

    Do

    • Use variables to enable customization within structured content such as prompt templates, code snippets, or text with predefined formats. For example, in AI prompt templates, variables allow users to modify specific elements without altering the overall structure that ensures consistent outputs.
    • Match placeholder variable text with input field labels when using interactive variables to help users easily identify which variable they're editing.

    Don't

    • Don’t overload a prompt with too many variables. Doing so increases cognitive load and can reduce prompt effectiveness.
    • Don’t use spaces within variable names. Instead, use hyphens.
    • Don’t use variables to display static, categorical labels or status indicators. Use a badge instead.
    • Don't use variables to display multiple related properties and their values. Use key-value pairs instead.

    Writing guidelines

    Component-specific guidelines

    Syntax

    By default inline token variables should use angle brackets <> and italic text to indicate placeholder within variable text. Use alternative syntax when angle brackets could cause confusion, such as in code snippets.

    • Use angle brackets: <variable-name>

    • Use descriptive, hyphenated names: <service-name>, <region-name>

    • Do not use spaces within variable names: <database-name> not <database name>

    • For example, "List EC2 instances in <region> created before <date>"

    Alternative syntax

    When working with code snippets or contexts where angle brackets might be confusing, use the appropriate syntax for that context. For example, View metrics for ${service} in ${region}.

    • Follow the syntax required by the code or template language

    • Common formats include: ${variable}, $variable, or other language-specific syntax

    Placeholder variable text

    • When an inline variable has not yet been edited by a user, it should be displayed as italic text. This formatting communicates a familiar pattern to users that there is placeholder text within a variable. For example, "Analyze potential cost savings for my <service-name> in region <region>."

    User-edited variable text

    • Once a user selects or enters a value for an inline variable, the value should be displayed as regular styled text. For example, "Analyze potential cost savings for my EC2 in region us-east-2."

    General writing guidelines

    • Use sentence case, but continue to capitalize proper nouns and brand names correctly in context.

    • Use end punctuation, except in headers and buttons. Don’t use exclamation points.

    • Use present-tense verbs and active voice.

    • Don't use please, thank you, ellipsis (...), ampersand (&), e.g., i.e., or etc. in writing.

    • Avoid directional language.

      • For example: use previous not above, use following not below.

    • Use device-independent language.

      • For example: use choose or select not click.

    Accessibility guidelines

    General accessibility guidelines

    • Follow the guidelines on alternative text and Accessible Rich Internet Applications (ARIA) regions for each component.

    • Make sure to define ARIA labels aligned with the language context of your application.

    • Don't add unnecessary markup for roles and landmarks. Follow the guidelines for each component.

    • Provide keyboard functionality to all available content in a logical and predictable order. The flow of information should make sense.

    Did this page help you?

    Tell us more - optional

    1000 character(s) available. Do not disclose any personal, commercially sensitive, or confidential information.
    • About
    • Connect
    • Privacy 
    • Site terms 
    • © 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.
    Made with love atAWS