Bulut platformu · Yeni kaynak

AWS Cloudscape Tasarım Sistemi.

Gerçek görsel yenileme belirteçleri, yoğunluğa duyarlı boşluklar, kontrollü form API’leri ve çalışan iki adımlı kaynak sihirbazı içeren bir Cloudscape yapılandırma kılavuzu.

OpenDesign Kılavuzu8 Bölüm50 referans kaydıÖzgün Uygulama Kılavuzu
01

AWS Cloudscape Tasarım Sistemi arayüzü önizlemesi

Geçersiz adları deneyin, kapasite profili seçin, yapılandırma ve inceleme arasında geçiş yapın, görünümü değiştirin ve tarifi yerel olarak onaylayın.

Çalışma alanını yapılandırın ve inceleyinÖrneğin Tamamını Aç
React 18.3.1 ile yerel Cloudscape 3.0.1390; özgün Wizard düzeni ve yalnızca yerel durum. · Uygulama başvurusu
02

AWS Cloudscape Tasarım Sistemi tasarım referansı

Cloudscape bileşenleri 3.0.1390 ve design-tokens 3.0.114, visual-refresh teması. Değerler yayımlanmış token JSON dosyasından okunur. Renk modları ve içerik yoğunlukları birbirinden ayrı boyutlardır. Bu, seçilmiş bir uygulama referansıdır; token dışa aktarımının tamamı değildir.

Açık ve koyu modlarda anlamsal renk rolleri

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
color-background-layout-mainlight: #ffffff; dark: #161d26Adlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-background-container-contentlight: #ffffff; dark: #161d26Adlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-text-body-defaultlight: #0f141a; dark: #c6c6cdAdlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-text-body-secondarylight: #424650; dark: #c6c6cdAdlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-text-interactive-defaultlight: #424650; dark: #dedee3Adlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-text-link-defaultlight: #006ce0; dark: #42b4ffAdlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-text-status-errorlight: #db0000; dark: #ff7a7aAdlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-text-status-successlight: #00802f; dark: #2bb534Adlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-border-input-defaultlight: #8c8c94; dark: #656871Adlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.
color-background-button-primary-defaultlight: #006ce0; dark: #42b4ffAdlandırılmış rolü amaçlanan bağlamda kullanın; eşleştirme, birbirinin yerine geçebilecek renk örneklerini değil, açık ve koyu moddaki değerleri gösterir.

Gövde metni ve başlık tipografisi

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
font-size-body-m14pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
font-size-body-s12pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
font-size-heading-l20pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
font-size-heading-m18pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
font-size-heading-s16pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
font-size-heading-xl24pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
font-size-heading-xs14pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
line-height-body-m20pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
line-height-body-s16pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
line-height-heading-l24pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
line-height-heading-m22pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
line-height-heading-s20pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
line-height-heading-xl30pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.
line-height-heading-xs18pxAynı rolün font-size ve line-height değerlerini birlikte kullanın. Header ve Box varyantları, bileşen hiyerarşisini uygular.

Yoğunluğa duyarlı boşluklar

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
space-scaled-xxxscomfortable: 2px; compact: 0pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.
space-scaled-xxscomfortable: 4px; compact: 2pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.
space-scaled-xscomfortable: 8px; compact: 4pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.
space-scaled-scomfortable: 12px; compact: 8pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.
space-scaled-mcomfortable: 16px; compact: 12pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.
space-scaled-lcomfortable: 20px; compact: 16pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.
space-scaled-xlcomfortable: 24px; compact: 20pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.
space-scaled-xxlcomfortable: 32px; compact: 24pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.
space-scaled-xxxlcomfortable: 40px; compact: 32pxEtkin yoğunluğa göre rahat veya sıkışık değeri kullanın. Bu boşluk değişiklikleriyle metni ölçeklendirmeyin.

Bileşen biçimi

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
border-radius-container16pxAdlandırılmış bileşenin biçimini koruyun. Düğme yarıçapı, kapsayıcılar için evrensel bir yarıçap değildir.
border-radius-button20pxAdlandırılmış bileşenin biçimini koruyun. Düğme yarıçapı, kapsayıcılar için evrensel bir yarıçap değildir.
border-radius-input8pxAdlandırılmış bileşenin biçimini koruyun. Düğme yarıçapı, kapsayıcılar için evrensel bir yarıçap değildir.
border-radius-alert12pxAdlandırılmış bileşenin biçimini koruyun. Düğme yarıçapı, kapsayıcılar için evrensel bir yarıçap değildir.
border-radius-dropdown8pxAdlandırılmış bileşenin biçimini koruyun. Düğme yarıçapı, kapsayıcılar için evrensel bir yarıçap değildir.
border-radius-card-embedded8pxAdlandırılmış bileşenin biçimini koruyun. Düğme yarıçapı, kapsayıcılar için evrensel bir yarıçap değildir.

Etkileşim zamanlaması

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
motion-duration-responsivedefault: 115ms; disabled: 0msHareket devre dışı modunda yerel animasyon süresi sıfıra iner. Aynı etkileşime ilgisiz başka bir geçiş efekti eklemekten kaçının.
motion-duration-expressivedefault: 165ms; disabled: 0msHareket devre dışı modunda yerel animasyon süresi sıfıra iner. Aynı etkileşime ilgisiz başka bir geçiş efekti eklemekten kaçının.
motion-duration-complexdefault: 250ms; disabled: 0msHareket devre dışı modunda yerel animasyon süresi sıfıra iner. Aynı etkileşime ilgisiz başka bir geçiş efekti eklemekten kaçının.

Yerel düzen API

Kaynak
Ad / KuralDeğer / YapılandırmaKullanım
WizardactiveStepIndex · onNavigate · onSubmitReact içindeki geçerli adımı yönetin; istenen sonraki indeksi kabul etmeden önce doğrulayın.
FormFieldlabel · constraintText · errorTextBiçim kuralını ve geçersiz giriş geri bildirimini ad alanının yanında gösterin.
Inputvalue · onChange({ detail })DOM olay hedefi yerine detail.value değerini okuyun.
SelectselectedOption · options · onChangelabel ve value dahil olmak üzere seçili seçenek nesnesini saklayın.
Containerheader={<Header variant="h2" />}Yeni bir kart sistemi uydurmadan, ilişkili yapılandırma alanlarını gruplandırın.
ColumnLayoutcolumns={2} · variant="text-grid"Kütüphane genişliğine uyum sağlayan sütunlarla kısa inceleme meta verilerini gösterin.
SpaceBetweensize="l"Alanları ve inceleme modüllerini ayırmak için kütüphanenin boşluk ölçeğini kullanın.
applyModeMode.Light / Mode.DarkYerel bileşenler ve anlamsal tokenlar için genel görsel modu değiştirin.
03

AWS Cloudscape Tasarım Sistemi eksiksiz kılavuz

Bu sistemi gerçek bir arayüz için seçmeye, uygulamaya ve gözden geçirmeye yönelik pratik bir kılavuz.

DESIGN-aws-cloudscape.md

Eksiksiz yönlendirme, uygulama için başlangıç noktası ve kaynak bağlantıları.

Kılavuzu İndir

AWS Cloudscape Tasarım Sistemi yapılandırma mimarisi

İş akışını Wizard ile eşleştirin

Örnek, yapılandırmayı incelemeden ayırır. Wizard adım gezinmesini ve eylemleri sağlar; uygulama ise geçerli indeksi, alan değerlerini, doğrulama kuralını ve son onayı yönetir. Okuyucu, formu yeniden oluşturmadan veya seçili kapasiteyi kaybetmeden yapılandırmaya dönebilir. Bu yaklaşım, çok adımlı bir iş akışının tamamını tek bir genel Card içine gizlemekten daha uygundur.

Bu OpenDesign kılavuzundan

Yerel kapsayıcılarla oluşturun

Container, Header ve SpaceBetween form bölümünü tanımlar. h1 işlemi tanıtır; h2 ayarlar grubuna ad verir. Açıklayıcı metin, tarif ettiği alanın veya adımın yanında yer alır. Dıştaki 1200px maksimum genişlik ve sayfa dolgusu, dışa aktarılmış Cloudscape düzen tokenları değil, uygulamada açıkça tanımlanan CSS değerleridir.

AWS Cloudscape Tasarım Sistemi anlamsal tokenları ve görsel modlar

Değeri seçmeden önce rolü belirleyin

Referans; düzen arka planını, kapsayıcı içeriğini, gövde metnini, etkileşimli metni ve durum geri bildirimini birbirinden ayırır. Bunların değerleri tek bir palet oluşturmaz. Özel arayüzler için açık modun hex değerini her duruma kopyalamak yerine @cloudscape-design/design-tokens paketinden adlandırılmış tokenı içe aktarın. Token kullanım amacına dair bir uzlaşmayı ifade ederken değeri zamanla değişebilir.

Kütüphane üzerinden modlar arasında geçiş yapın

Önizleme, global-styles içindeki Mode.Light veya Mode.Dark ile applyMode işlevini çağırır. Bu, rastgele CSS renkleri değiştirmek yerine bileşenlerin kullandığı modu günceller. Koyu inceleme ekranında aynı etiketler, seçili kapasite ve gezinme durumu korunur. Kaynak JSON hem açık hem koyu mod değerlerini kaydeder; böylece aradaki fark incelenebilir.

AWS Cloudscape Tasarım Sistemi tipografi ve başlık hiyerarşisi

Yazı tipi ve satır yüksekliği rollerini birlikte kullanın

visual-refresh body-m referansı 14px yazı boyutu ve 20px satır yüksekliğidir. heading-xl 30px satır yüksekliğiyle 24px; heading-l 24px satır yüksekliğiyle 20px; heading-m ise 22px satır yüksekliğiyle 18px değerindedir. Bu roller, formun kompakt hiyerarşisini açıklar; pazarlama amaçlı büyük başlık boyutlarının yerine geçmez.

Anlamsal bileşen varyantlarını kullanın

Header varyantı h1, Create a workspace başlığını adlandırır. Container başlıkları h2 kullanır; Box varyantı awsui-key-label ise inceleme etiketlerine tutarlı, ikincil bir görünüm kazandırır. İnceleme değerleri okunabilir sıradan metinler olarak kalır. Daha fazla görsel ağırlık oluşturmak için her alan etiketini başlık düzeyine çıkarmayın.

AWS Cloudscape Tasarım Sistemi denetimli alanlar ve inceleme düzeni

detail olay sözleşmesini anlayın

Input, yeni metni içeren detail.value değerine sahip bir olay gönderir. Select ise yalın bir dize yerine seçenek nesnesi olan detail.selectedOption değerini gönderir. Tam örnek bu nesneyi saklar ve incelemede label değerini gösterir. Böylece selectedOption değerine yalnızca bir tanımlayıcı verildiği için seçicinin boş görünmesine yol açan yaygın bir entegrasyon hatası önlenir.

Alan yönergelerini ilgili alanla birlikte tutun

  • Alan biçimi ilkesi bu örnek uygulamaya özgüdür.
  • Kapasite seçenekleri ürün veya fiyatlandırma iddiası değildir.
  • Sunumu yerel bileşenler yönetir; yapılandırmayı ise React durumu saklar.

AWS Cloudscape Tasarım Sistemi yoğunluğu ve duyarlı düzen

Sıkışık modu yakınlaştırma düzeyi olarak görmeyin

Yayımlanmış ölçeklendirilmiş boşluk değerleri yoğunluğa göre değişir. Örneğin space-scaled-m, rahat yoğunlukta 16px, sıkışık yoğunlukta 12px; space-scaled-l ise sırasıyla 20px ve 16px değerindedir. Bu farklar, içeriği yeniden tanımlamadan veya metni keyfî biçimde küçültmeden dikey ritmi sıkıştırır. Yerel bileşenler kendi yoğunluk kurallarını uygular.

Adım ve inceleme düzenlerinin uyum sağlamasına izin verin

Wizard, kullanılabilir genişliğe göre gezinme görünümünü değiştirir; ColumnLayout ise inceleme meta verilerini duyarlı biçimde düzenler. Uygulama CSS değeri, dış dolguyu 600px altında azaltır. Örnek, masaüstündeki adım gezinmesi genişliğini sabit kodlamaz; mobil sürümde Sonraki, Önceki ve yerel Onayla eylemleri görünür kalır.

AWS Cloudscape Tasarım Sistemi Wizard doğrulama ve onay

Gezinmeyi kabul etmeden önce doğrulayın

onNavigate, requestedStepIndex değerini alır. Uygulama, inceleme adımına geçmeden önce geçerli adı kontrol eder ve ad geçersizse adımı değiştirmez. Düzenleme yapıldığında hata temizlenir; böylece bir sonraki gönderim yeniden değerlendirilir. Ayarlara geri dönmek, adı ve seçili seçeneği korur.

  1. Geçersiz bir ad gönderin ve yapılandırma ekranında kalın.
  2. Adı düzeltin ve farklı bir kapasite profili seçin.
  3. İnceleme adımına geçin ve her iki değeri de onaylayın.
  4. Değerleri kaybetmeden geri dönmek için Ayarları düzenle seçeneğini kullanın.
  5. Yerel olarak onaylayın ve örneği yeniden başlatın.

Bir tarifi kaynak oluşturma işleminden ayırın

Son eylem, yerel bir başarı Alert bileşeni ve yapılandırma özeti gösterir. Gerçek bir kaynak oluşturuyormuş gibi davranmaz. Gerçek bir uygulamada, kaynak oluşturma devam ederken gönderim eylemini beklemede tutun; kabul edilen isteklerle tamamlanan kaynakları birbirinden ayırın ve yapılandırmayı silmeden hatalardan kurtarma olanağı sunun.

AWS Cloudscape Tasarım Sistemi form erişilebilirliği

Etiketleri ve gezinme adlarını koruyun

Wizard, navigationAriaLabel değerini ve çevrilmiş eylem dizelerini alır. Her Input ve Select, etiketli bir FormField içinde yer alır. Alert, geçersiz veya başarılı sonuçları yerel bileşen anlambilimiyle bildirir. Görünür kısıtlamalar alan etiketini tamamlar; onun yerini almaz.

Tüm işlem boyunca klavye akışını gözden geçirin

Ad alanına ulaşmak, kapasite seçiciyi açmak, ilerlemek, geri dönmek, düzenlemek ve onaylamak için klavyeyi kullanın. Yerel odak davranışı yardımcı olur; ancak adım doğrulama kuralının ve onayın anlamının sorumluluğu yine uygulamadadır. Bileşen kütüphanesi, eksik bir iş kuralını tek başına doğrulayamaz.

AWS Cloudscape Tasarım Sistemi kurulumu ve özel sınırlar

İlişkili paketleri birlikte yükleyin

Uygulama, bileşenleri kendi paket alt yollarından içe aktarır ve global-styles dosyasını bir kez yükler. design-tokens, özel stiller için referans sağlar. Sağlanan React giriş dosyası ve kompakt CSS dosyası, etkileşimli örneği bir Vite React uygulamasında yeniden oluşturur. Uyumlu Cloudscape paket sürümlerini birlikte kullanın.

Sağlanan örneği gerçek bir başlangıç noktası olarak kullanın

AWS Cloudscape Tasarım Sistemi Bileşen Örnekleri

main.jsx — eksiksiz yapılandırma sihirbazı

Denetimli gezinme ve yerel onayla birlikte yerel Wizard, FormField, Select ve inceleme meta verileri.

jsx
import React, { useState } from "react";
import { createRoot } from "react-dom/client";
import Wizard from "@cloudscape-design/components/wizard";
import Container from "@cloudscape-design/components/container";
import Header from "@cloudscape-design/components/header";
import FormField from "@cloudscape-design/components/form-field";
import Input from "@cloudscape-design/components/input";
import Select from "@cloudscape-design/components/select";
import SpaceBetween from "@cloudscape-design/components/space-between";
import ColumnLayout from "@cloudscape-design/components/column-layout";
import Box from "@cloudscape-design/components/box";
import Button from "@cloudscape-design/components/button";
import Alert from "@cloudscape-design/components/alert";
import Toggle from "@cloudscape-design/components/toggle";
import { applyMode, Mode } from "@cloudscape-design/global-styles";
import "@cloudscape-design/global-styles/index.css";
import "./cloudscape.css";
const sizes = [
  { label: "Development · 2 vCPU / 4 GiB", value: "dev" },
  { label: "Standard · 4 vCPU / 8 GiB", value: "standard" },
  { label: "Compute · 8 vCPU / 16 GiB", value: "compute" },
];
function App() {
  const [name, setName] = useState("analytics-sandbox"),
    [size, setSize] = useState(sizes[0]),
    [step, setStep] = useState(0),
    [error, setError] = useState(""),
    [complete, setComplete] = useState(false),
    [dark, setDark] = useState(false);
  function next(index) {
    if (index > 0 && !/^[a-z][a-z0-9-]{2,29}$/.test(name)) {
      setError(
        "Use 3–30 lowercase letters, numbers or hyphens, starting with a letter.",
      );
      return;
    }
    setError("");
    setStep(index);
  }
  function reset() {
    setStep(0);
    setComplete(false);
    setError("");
    setName("analytics-sandbox");
    setSize(sizes[0]);
  }
  return (
    <main className="awsui-typography cloudscape-example">
      <div className="appearance">
        <span>CLOUDSCAPE · RESOURCE CONFIGURATION</span>
        <Toggle
          checked={dark}
          onChange={({ detail }) => {
            setDark(detail.checked);
            applyMode(detail.checked ? Mode.Dark : Mode.Light);
          }}
        >
          Dark mode
        </Toggle>
      </div>
      <Header
        variant="h1"
        description="Configure a fictional compute workspace. This example does not create a cloud resource."
      >
        Create a workspace
      </Header>
      <div className="wizard-content">
        {complete ? (
          <SpaceBetween size="l">
            <Alert type="success" header="Configuration confirmed locally">
              The {name} recipe is ready for review. No cloud API was called and
              no resource was provisioned.
            </Alert>
            <Container header={<Header variant="h2">Workspace recipe</Header>}>
              <ColumnLayout columns={2} variant="text-grid">
                <div>
                  <Box variant="awsui-key-label">Name</Box>
                  {name}
                </div>
                <div>
                  <Box variant="awsui-key-label">Capacity</Box>
                  {size.label}
                </div>
              </ColumnLayout>
            </Container>
            <Button onClick={reset}>Start another example</Button>
          </SpaceBetween>
        ) : (
          <Wizard
            activeStepIndex={step}
            onNavigate={({ detail }) => next(detail.requestedStepIndex)}
            onCancel={reset}
            onSubmit={() => setComplete(true)}
            i18nStrings={{
              stepNumberLabel: (stepNumber) => `Step ${stepNumber}`,
              collapsedStepsLabel: (stepNumber, stepsCount) =>
                `Step ${stepNumber} of ${stepsCount}`,
              skipToButtonLabel: (step) => `Skip to ${step.title}`,
              navigationAriaLabel: "Configuration steps",
              cancelButton: "Reset",
              previousButton: "Previous",
              nextButton: "Next",
              submitButton: "Confirm locally",
              optional: "optional",
            }}
            steps={[
              {
                title: "Configure workspace",
                description: "Choose the identity and capacity.",
                content: (
                  <Container
                    header={<Header variant="h2">Workspace settings</Header>}
                  >
                    <SpaceBetween size="l">
                      <FormField
                        label="Workspace name"
                        constraintText="3–30 characters; lowercase letters, numbers and hyphens."
                        errorText={error}
                      >
                        <Input
                          value={name}
                          onChange={({ detail }) => {
                            setName(detail.value);
                            setError("");
                          }}
                        />
                      </FormField>
                      <FormField
                        label="Capacity profile"
                        description="These profiles are sample application data, not real cloud products or prices."
                      >
                        <Select
                          selectedOption={size}
                          onChange={({ detail }) =>
                            setSize(detail.selectedOption)
                          }
                          options={sizes}
                        />
                      </FormField>
                    </SpaceBetween>
                  </Container>
                ),
              },
              {
                title: "Review configuration",
                description:
                  "Check the values before confirming the local example.",
                content: (
                  <SpaceBetween size="l">
                    <Container
                      header={
                        <Header
                          variant="h2"
                          actions={
                            <Button onClick={() => setStep(0)}>
                              Edit settings
                            </Button>
                          }
                        >
                          Workspace settings
                        </Header>
                      }
                    >
                      <ColumnLayout columns={2} variant="text-grid">
                        <div>
                          <Box variant="awsui-key-label">Workspace name</Box>
                          {name}
                        </div>
                        <div>
                          <Box variant="awsui-key-label">Capacity profile</Box>
                          {size.label}
                        </div>
                      </ColumnLayout>
                    </Container>
                    <Alert type="info">
                      Confirmation changes the preview only. Production
                      provisioning would require a real service, permissions and
                      a verified response.
                    </Alert>
                  </SpaceBetween>
                ),
              },
            ]}
          />
        )}
      </div>
      <footer>
        Native Cloudscape components 3.0.1390 · configuration, validation,
        review and local confirmation.
      </footer>
    </main>
  );
}
createRoot(document.getElementById("root")).render(<App />);

Kod referansı

  • Bunu src/main.jsx olarak kaydedin. Sonraki kod bloğu içe aktarılan src/cloudscape.css dosyasıdır.

cloudscape.css — örnek sayfa kabuğu

Yerel Cloudscape bileşenlerinin çevresindeki uygulama genişliği ve dolgu.

css
body {
  margin: 0;
}
.cloudscape-example {
  padding: 24px;
  max-width: 1200px;
  margin: auto;
}
.appearance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.appearance > span {
  font-size: 11px;
  letter-spacing: 0.06em;
  font-weight: 700;
}
.wizard-content {
  margin-top: 32px;
}
.cloudscape-example footer {
  font-size: 12px;
  margin-top: 32px;
  color: #5f6b7a;
}
@media (max-width: 600px) {
  .cloudscape-example {
    padding: 16px;
  }
  .appearance {
    align-items: start;
  }
  .appearance > span {
    max-width: 180px;
  }
  .wizard-content {
    margin-top: 24px;
  }
}

Kod referansı

  • Bu uygulama stil dosyasıyla yerel bileşen sınıf adlarını geçersiz kılmayın.
04

AWS Cloudscape Tasarım Sistemi Aracı Kurulumu

Uygulamaya Başlangıç Noktası

Görüntülenen yerel örnek, React 18.3.1 ile birlikte sunulmuştur. Yüklediğiniz Vite sürümünün desteklediği bir Node.js sürümü kullanın; uygulamanızın kilit dosyasında kullanılan sürümleri koruyun.

sh
npm create vite@latest cloudscape-workspace -- --template react
cd cloudscape-workspace
npm install
npm install [email protected] [email protected] @cloudscape-design/[email protected] @cloudscape-design/[email protected] @cloudscape-design/global-styles
# Replace src/main.jsx and add src/cloudscape.css from the full examples.
npm run dev

Projeniz İçin Bir İstem

Ajan İstemi
Cloudscape ile bir kaynak yapılandırma iş akışı oluşturun. Sağlanan yerel Wizard/Container/FormField/Input/Select kodunu ve visual-refresh belirteç rollerini kullanın. Adımlar arasında alan değerlerini koruyun, gezinmeden önce doğrulayın ve eksiksiz bir inceleme gösterin. Örnek kapasite profillerini gerçek bulut ürünleri olarak değil, alan modelim için yer tutucular olarak değerlendirin. Yalnızca bir API sağlandıktan sonra kaynak sağlamayı entegre edin; beklemede, başarısız ve onaylanmış sonuçları birbirinden ayırın.
05

AWS Cloudscape Tasarım Sistemi Kaynakları ve Kapsamı

Yerel Cloudscape bileşenlerini kullanan OpenDesign kılavuzu ve özgün yerel çalışma alanı yapılandırma örneği 3.0.1390. Kapasite profilleri kurgusal uygulama verileridir. Herhangi bir bulut hesabı, kaynak sağlama API veya gerçek hizmet fiyatlandırması söz konusu değildir.