Skip to content

Theme

The Theme resource allows you to manage AWS AmplifyUIBuilder Themes for your applications, enabling you to define the visual appearance and style of your UI components.

Minimal Example

Create a basic theme with required properties and one common optional property.

ts
import AWS from "alchemy/aws/control";

const basicTheme = await AWS.AmplifyUIBuilder.Theme("basicTheme", {
  AppId: "my-app-id",
  Name: "Basic Theme",
  Values: [
    { key: "colorPrimary", value: "#ff5733" },
    { key: "fontSizeBase", value: "16px" }
  ]
});

Advanced Configuration

Configure a theme with additional properties, including environment name and overrides.

ts
const advancedTheme = await AWS.AmplifyUIBuilder.Theme("advancedTheme", {
  AppId: "my-app-id",
  EnvironmentName: "development",
  Name: "Advanced Theme",
  Values: [
    { key: "colorPrimary", value: "#007bff" },
    { key: "fontFamily", value: "'Helvetica Neue', Arial, sans-serif" }
  ],
  Overrides: [
    { key: "buttonBorderRadius", value: "5px" },
    { key: "inputBorderColor", value: "#ccc" }
  ],
  Tags: {
    project: "UIUpdate",
    version: "1.0"
  }
});

Theme with Custom Properties

Create a theme that includes custom values for distinctive UI elements.

ts
const customTheme = await AWS.AmplifyUIBuilder.Theme("customTheme", {
  AppId: "my-app-id",
  Name: "Custom Theme",
  Values: [
    { key: "colorBackground", value: "#f8f9fa" },
    { key: "colorText", value: "#212529" },
    { key: "buttonBackground", value: "#28a745" },
    { key: "buttonTextColor", value: "#ffffff" }
  ]
});

Theme with Tags for Organization

Create a theme with tags for better organization and tracking.

ts
const taggedTheme = await AWS.AmplifyUIBuilder.Theme("taggedTheme", {
  AppId: "my-app-id",
  Name: "Tagged Theme",
  Values: [
    { key: "colorLink", value: "#007bff" },
    { key: "fontWeightBold", value: "700" }
  ],
  Tags: {
    environment: "production",
    owner: "design-team"
  }
});