데이터 분석 · 새 리소스

Semrush Intergalactic 디자인 시스템.

최신 시맨틱 및 차트 토큰, 기본 필터 컨트롤, 고정 척도 비교, 선택 항목 세부 정보, 재현 가능한 전체 픽스처를 제공하는 Intergalactic 가이드입니다.

OpenDesign 가이드8개 챕터참조 항목 38개독자적 적용 가이드
01

Semrush Intergalactic 디자인 시스템 인터페이스 미리보기

검색어를 필터링하고, 추적 중인 레코드만 표시하도록 제한하고, 측정항목을 변경하고, 축척 맥락을 유지하면서 선택한 값을 살펴보세요.

가상의 키워드 모음 비교전체 예시 열기
@semcore/ui 17.6.0의 기본 인터갤럭틱 컨트롤과 @semcore/theme 2.3.1 사용; 독자적인 HTML 막대 비교. · 구현 레퍼런스
02

Semrush Intergalactic 디자인 시스템 디자인 참고 자료

@semcore/ui 17.6.0의 기본 인터갤럭틱 컨트롤과 @semcore/theme 2.3.1 사용; 독자적인 HTML 막대 비교.

시맨틱 라이트 역할

출처
이름 / 규칙값 / 구성용도
--intergalactic-bg-primary-neutraloklch(1 0 0)고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.
--intergalactic-bg-secondary-neutraloklch(0.98 0.001 180)고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.
--intergalactic-text-primaryoklch(0.1 0.03 137 / 0.899)고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.
--intergalactic-text-secondaryoklch(0.088 0.026 147.7 / 0.583)고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.
--intergalactic-border-primaryoklch(0.137 0.026 175.7 / 0.161)고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.
--intergalactic-control-primary-infooklch(0.23 0.01 140)고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.
--intergalactic-control-primary-info-hoveroklch(0.32 0.007 140)고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.
--intergalactic-control-primary-info-activeoklch(0 0 140)고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.
--intergalactic-control-rounded6px고정된 테마에 지정된 현재 시맨틱 값이며, OKLCH 표현식이 포함됩니다.

텍스트 크기

출처
이름 / 규칙값 / 구성용도
--intergalactic-fs-5010px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.
--intergalactic-fs-10012px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.
--intergalactic-fs-20014px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.
--intergalactic-fs-30016px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.
--intergalactic-fs-40020px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.
--intergalactic-fs-50024px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.
--intergalactic-fs-60032px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.
--intergalactic-fs-70036px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.
--intergalactic-fs-80048px공개된 텍스트 크기 단계입니다. 정보 계층 구조에 맞는 역할을 선택하세요.

간격

출처
이름 / 규칙값 / 구성용도
--intergalactic-spacing-1x4px테마 스타일시트에 정의된 간격 단계입니다.
--intergalactic-spacing-2x8px테마 스타일시트에 정의된 간격 단계입니다.
--intergalactic-spacing-3x12px테마 스타일시트에 정의된 간격 단계입니다.
--intergalactic-spacing-4x16px테마 스타일시트에 정의된 간격 단계입니다.
--intergalactic-spacing-5x20px테마 스타일시트에 정의된 간격 단계입니다.
--intergalactic-spacing-6x24px테마 스타일시트에 정의된 간격 단계입니다.
--intergalactic-spacing-8x32px테마 스타일시트에 정의된 간격 단계입니다.
--intergalactic-spacing-10x40px테마 스타일시트에 정의된 간격 단계입니다.
--intergalactic-spacing-05x2px테마 스타일시트에 정의된 간격 단계입니다.

모서리

출처
이름 / 규칙값 / 구성용도
--intergalactic-rounded-extra-small2px모든 곳에 큰 반경을 적용하는 대신 컴포넌트에 적합한 모서리 반경을 사용하세요.
--intergalactic-rounded-small4px모든 곳에 큰 반경을 적용하는 대신 컴포넌트에 적합한 모서리 반경을 사용하세요.
--intergalactic-rounded-medium6px모든 곳에 큰 반경을 적용하는 대신 컴포넌트에 적합한 모서리 반경을 사용하세요.
--intergalactic-rounded-large12px모든 곳에 큰 반경을 적용하는 대신 컴포넌트에 적합한 모서리 반경을 사용하세요.
--intergalactic-rounded-extra-large24px모든 곳에 큰 반경을 적용하는 대신 컴포넌트에 적합한 모서리 반경을 사용하세요.

차트의 처음 여섯 가지 색상

출처
이름 / 규칙값 / 구성용도
--intergalactic-chart-palette-order-1oklch(0.58 0.168 278.2)데이터 계열에 순서대로 적용되는 색상입니다. 예시에서는 단일 계열에 첫 번째 역할을 사용합니다.
--intergalactic-chart-palette-order-2oklch(0.82 0.15 170)데이터 계열에 순서대로 적용되는 색상입니다. 예시에서는 단일 계열에 첫 번째 역할을 사용합니다.
--intergalactic-chart-palette-order-3oklch(0.74 0.17 303)데이터 계열에 순서대로 적용되는 색상입니다. 예시에서는 단일 계열에 첫 번째 역할을 사용합니다.
--intergalactic-chart-palette-order-4oklch(0.82 0.18 80)데이터 계열에 순서대로 적용되는 색상입니다. 예시에서는 단일 계열에 첫 번째 역할을 사용합니다.
--intergalactic-chart-palette-order-5oklch(0.74 0.19 22)데이터 계열에 순서대로 적용되는 색상입니다. 예시에서는 단일 계열에 첫 번째 역할을 사용합니다.
--intergalactic-chart-palette-order-6oklch(0.82 0.088 272.1)데이터 계열에 순서대로 적용되는 색상입니다. 예시에서는 단일 계열에 첫 번째 역할을 사용합니다.
03

Semrush Intergalactic 디자인 시스템 전체 가이드

실제 인터페이스를 위해 이 시스템을 선택하고 적용하고 검토하는 실용 가이드.

DESIGN-semrush-intergalactic.md

완전한 안내와 구현 시작점, 소스 링크.

가이드 다운로드

Semrush Intergalactic 디자인 시스템 분석 워크스페이스 레이아웃

비교의 기준이 되는 질문을 정하세요

이 예시에서는 가상의 키워드 여섯 개를 선택한 측정항목 하나로 비교합니다. 결과 위쪽에는 필터, 추적 중인 항목만 표시하는 옵션, 측정항목 버튼이 있습니다. 별도의 상세 정보 패널에는 선택한 검색어의 두 측정항목이 모두 표시되어, 순위 보기와 실제 값을 함께 비교할 수 있습니다.

이 OpenDesign 가이드에서

작성된 데이터와 측정된 데이터를 구분하세요

모든 숫자는 고정된 테스트 데이터에 포함된 값이며, 예시임을 명시합니다. 검색량이나 난이도를 현재 Semrush 측정값으로 보여주지 않습니다. 막대는 네트워크 요청, 분석 계정 또는 다운로드한 고객 데이터셋을 기반으로 하지 않습니다.

Semrush Intergalactic 디자인 시스템 테마 및 토큰 생성

현재 테마 패키지를 목적에 맞게 사용하세요

런타임에서 @semcore/ui 17.6.0과 @semcore/theme 2.3.1을 고정해 사용합니다. 기본 컴포넌트에는 현재 테마 패키지가 필요하며, 진입점에서 light.css를 가져옵니다. 표에는 관련 없는 이전 HEX 기본값으로 대체하지 않고 해당 스타일시트의 OKLCH 값을 그대로 유지합니다.

컴포넌트 역할과 차트 역할을 분리하세요

기본 컨트롤의 모양은 인터갤럭틱 스타일링을 따르며, 독자적인 막대 비교에는 차트 팔레트의 첫 번째 계열 역할을 사용합니다. 선택 상태는 절제된 행 배경과 눌림 상태로 표현합니다. 계열 색상을 모든 액션이나 오류 색상에 무분별하게 재사용해서는 안 됩니다.

Semrush Intergalactic 디자인 시스템 조밀한 결과를 위한 타이포그래피

레이블, 단위, 값을 함께 표시하세요

각 막대 행에는 검색어와 숫자 값이 텍스트로 표시됩니다. 작은 축 설명에는 축척이 예시 검색 횟수인지 100점 만점 점수인지 명시합니다. 상세 정보 패널에도 두 단위를 모두 표시해, 막대 길이가 비슷하다는 이유로 측정항목을 서로 바꿔 쓸 수 있다고 오해하지 않도록 합니다.

맥락을 숨기지 않으면서 간결한 텍스트를 사용하세요

기본 입력란은 필터를 편하게 조작할 수 있도록 큰 크기를 사용합니다. 결과 레이블은 간결하게 유지하고, 워크스페이스 제목과 섹션 제목은 더 크게 표시합니다. 화면이 좁으면 검색어를 잘려서 읽기 어려운 조각으로 표시하는 대신 막대와 값 위로 옮깁니다.

Semrush Intergalactic 디자인 시스템 차트 축척 및 정렬

필터링 중에도 축척을 고정하세요

검색량 차트의 최댓값은 항상 8,100이고 난이도 차트의 최댓값은 100입니다. 필터링해도 남은 항목 중 가장 긴 막대가 전체 너비를 차지하도록 축척을 늘리지 않습니다. 이 설계는 사용자가 항목 범위를 좁혀도 비교 기준을 유지합니다.

현재 측정항목을 기준으로 정렬하세요

Semrush Intergalactic 디자인 시스템 기본 입력란 및 체크박스

복합 입력란 구조를 사용하세요

Input은 바깥쪽 컴포넌트를 제공하고, Input.Value는 실제로 편집할 수 있는 컨트롤을 제공합니다. onChange 콜백에서 문자열 값이 첫 번째 인수로 전달되므로 표준 DOM 변경 이벤트와 다르게 처리해야 합니다. 표시되는 레이블은 Value의 id를 가리킵니다.

불리언 필터와 텍스트 필터를 분리하세요

기본 Checkbox의 onChange에는 체크 여부를 나타내는 불리언 값이 전달됩니다. 행을 만들 때 텍스트 필터와 추적 중인 항목만 표시하는 상태를 함께 적용하므로, 어느 쪽이든 결과가 비어 있을 수 있습니다. 필터를 초기화하면 두 컨트롤이 모두 복원되지만 상세 정보 패널의 선택 항목은 유지됩니다.

Semrush Intergalactic 디자인 시스템 선택 항목 상세 정보 및 빈 상태

선택 항목을 정체성에 연결해 유지

선택한 검색어는 배열 순서와 별도로 저장됩니다. 막대를 클릭하면 해당 검색어와 눌림 상태가 업데이트되고, 상세 정보 패널에서는 전체 테스트 레코드를 조회합니다. 다른 측정항목으로 정렬해도 상세 정보 패널이 다른 행 인덱스를 가리키는 일은 없습니다.

필터 바깥에 있는 선택 항목도 유지되는 이유를 설명하세요

선택한 검색어가 더는 보이지 않아도 설명 문구와 함께 상세 정보 패널을 유지합니다. 필터링 전후의 항목을 비교할 때 유용합니다. 결과가 없으면 차트 패널을 비워 두는 대신 명시적인 초기화 동작을 제공합니다.

Semrush Intergalactic 디자인 시스템 접근성 높은 데이터 비교

색상 없이도 차트를 이해할 수 있게 하세요

막대는 실제 버튼 안에 표시되는 장식용 요소입니다. 용어와 값이 접근 가능한 텍스트를 구성하고, aria-pressed가 선택 상태를 나타냅니다. 막대 길이나 계열 색상을 볼 수 없어도 데이터를 이해할 수 있습니다. 키보드 포커스는 선택된 행의 스타일과 시각적으로 구분됩니다.

  1. Difficulty를 선택하고 막대 순서와 점수 단위를 확인하세요.
  2. 일치하는 항목이 없도록 필터링한 다음 Reset filters를 사용하세요.
  3. 용어를 선택하고, 필터로 해당 항목을 제외한 뒤 선택 상태가 유지된다는 설명을 확인하세요.

필터 복구 경로 테스트

기본 입력과 체크박스는 실제 컨트롤을 그대로 노출합니다. 측정 항목 전환에는 눌림 상태를 표시하는 버튼을 사용하며, 기존 초기화 작업은 두 필터를 모두 지웁니다. 결과 제목과 단위 안내를 계속 표시하므로 결과가 있거나 없을 때 모두 같은 맥락을 제공합니다.

Semrush Intergalactic 디자인 시스템 컴포넌트 가져오기 및 테마 설정

컴포넌트 진입점 가져오기

@semcore/ui 루트는 모든 컴포넌트를 내보내는 대신 의도적으로 오류를 발생시킵니다. 이 소스는 전용 진입점에서 button, input, checkbox를 가져오고 @semcore/theme/light.css를 가져옵니다. 전체 진입점에는 fixture와 모든 파생 로직이 포함되어 있습니다.

  • 전용 @semcore/ui/button, input 및 checkbox 가져오기.
  • 고정된 @semcore/theme/light.css.
  • 전체 JSX에 포함된 기존 고정 척도 막대 및 fixture 로직.

사용자 지정 막대를 기본 D3 차트로 표시하지 마세요

Semrush Intergalactic 디자인 시스템 컴포넌트 예제

main.jsx — 완전히 작동하는 예제

가상의 키워드 집합을 비교합니다. 아래 소스는 상태와 유효성 검사 로직을 모두 포함한 전체 React 진입점입니다.

jsx
import React, { useState } from "react";
import { createRoot } from "react-dom/client";
import Button from "@semcore/ui/button";
import Input from "@semcore/ui/input";
import Checkbox from "@semcore/ui/checkbox";
import "@semcore/theme/light.css";
import "./intergalactic.css";
const data = [
  { term: "design tokens", volume: 8100, difficulty: 42, tracked: true },
  { term: "component library", volume: 6600, difficulty: 58, tracked: false },
  { term: "accessible forms", volume: 2900, difficulty: 31, tracked: true },
  {
    term: "responsive typography",
    volume: 1900,
    difficulty: 24,
    tracked: false,
  },
  { term: "semantic colors", volume: 1300, difficulty: 18, tracked: false },
  { term: "design system audit", volume: 720, difficulty: 36, tracked: true },
];
function App() {
  const [q, setQ] = useState(""),
    [tracked, setTracked] = useState(false),
    [metric, setMetric] = useState("volume"),
    [selected, setSelected] = useState("design tokens");
  const rows = data
    .filter((d) => d.term.includes(q.toLowerCase()) && (!tracked || d.tracked))
    .sort((a, b) => b[metric] - a[metric]);
  const max = metric === "volume" ? 8100 : 100;
  const item = data.find((d) => d.term === selected);
  return (
    <main className="research">
      <header>
        <p>RESEARCH WORKSPACE / FICTIONAL DATA</p>
        <h1>Compare a keyword set</h1>
        <span>
          Six authored sample records · figures are illustrative, not Semrush
          measurements
        </span>
      </header>
      <div className="research-toolbar">
        <div className="research-search">
          <label htmlFor="term-search">Filter keywords</label>
          <Input size="l">
            <Input.Value
              id="term-search"
              placeholder="Find a sample term"
              value={q}
              onChange={setQ}
            />
          </Input>
        </div>
        <Checkbox
          label="Tracked only"
          checked={tracked}
          onChange={setTracked}
        />
        <div
          className="metric-options"
          role="group"
          aria-label="Comparison metric"
        >
          <Button
            use={metric === "volume" ? "primary" : "secondary"}
            aria-pressed={metric === "volume"}
            onClick={() => setMetric("volume")}
          >
            Volume
          </Button>
          <Button
            use={metric === "difficulty" ? "primary" : "secondary"}
            aria-pressed={metric === "difficulty"}
            onClick={() => setMetric("difficulty")}
          >
            Difficulty
          </Button>
        </div>
      </div>
      <div className="research-grid">
        <section className="chart-panel">
          <div className="chart-heading">
            <h2>
              {metric === "volume"
                ? "Illustrative monthly volume"
                : "Illustrative difficulty score"}
            </h2>
            <span>{rows.length} terms</span>
          </div>
          <p className="axis-note">
            {metric === "volume"
              ? "Fixed scale: 0–8,100 sample searches"
              : "Fixed scale: 0–100 sample score"}
          </p>
          {rows.length ? (
            <div className="bars">
              {rows.map((r) => (
                <button
                  className={
                    "bar-row " + (r.term === selected ? "selected" : "")
                  }
                  key={r.term}
                  onClick={() => setSelected(r.term)}
                  aria-pressed={r.term === selected}
                >
                  <span className="bar-name">{r.term}</span>
                  <span className="bar-track" aria-hidden="true">
                    <i style={{ width: (r[metric] / max) * 100 + "%" }} />
                  </span>
                  <strong>{r[metric].toLocaleString("en-US")}</strong>
                </button>
              ))}
            </div>
          ) : (
            <div className="no-results">
              <h3>No matching terms</h3>
              <p>
                Clear the text and tracked filter to restore the full
                comparison.
              </p>
              <Button
                onClick={() => {
                  setQ("");
                  setTracked(false);
                }}
              >
                Reset filters
              </Button>
            </div>
          )}
          <p className="chart-note">
            Values are written beside every bar. Click a term to inspect both
            metrics.
          </p>
        </section>
        <aside>
          <h2>{item.term}</h2>
          <dl>
            <dt>Sample volume</dt>
            <dd>{item.volume.toLocaleString("en-US")}</dd>
            <dt>Sample difficulty</dt>
            <dd>{item.difficulty} / 100</dd>
            <dt>Tracking</dt>
            <dd>{item.tracked ? "Tracked" : "Not tracked"}</dd>
          </dl>
          <div className="inspector-note">
            <h3>Comparison context</h3>
            <p>
              The bar scale stays fixed when filters change. Difficulty and
              volume have separate units and are not added together.
            </p>
          </div>
          {!rows.some((r) => r.term === selected) && (
            <p className="retained">
              Selected term is outside the current filter; details are retained.
            </p>
          )}
        </aside>
      </div>
      <footer>
        Native Intergalactic Input, Checkbox and Button from @semcore/ui 17.6.0.
        Original accessible HTML bar comparison; no analytics service request.
      </footer>
    </main>
  );
}
createRoot(document.getElementById("root")).render(<App />);

코드 참조

  • Vite React 프로젝트를 만들고 <div id="root"></div>를 유지한 다음, 이 파일을 src/main.jsx로 불러오세요.

intergalactic.css — 직접 만든 반응형 구성

기본 구성 요소를 중심으로 구성한 애플리케이션 레이아웃입니다.

CSS
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  font:
    14px/1.5 Arial,
    sans-serif;
  color: var(--intergalactic-text-primary);
  background: #fff;
}
.research {
  padding: 28px;
}
.research header {
  border-bottom: 1px solid #e0e1e9;
  padding-bottom: 24px;
}
.research header p {
  font-size: 12px;
  color: #6c6e79;
  margin: 0 0 10px;
  letter-spacing: 0.07em;
}
.research h1 {
  font-size: 28px;
  margin: 0 0 8px;
}
.research header span {
  color: #6c6e79;
}
.research-toolbar {
  display: flex;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
  padding: 24px 0;
}
.research-search {
  min-width: 220px;
  flex: 1;
}
.research-search label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
}
.metric-options {
  display: flex;
  gap: 8px;
}
.research-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(250px, 0.8fr);
  gap: 24px;
}
.chart-panel,
.research aside {
  border: 1px solid #c4c7cf;
  border-radius: 8px;
  padding: 24px;
  min-width: 0;
}
.chart-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}
.research h2 {
  font-size: 18px;
  margin: 0;
}
.chart-heading > span,
.axis-note,
.chart-note {
  font-size: 12px;
  color: #6c6e79;
}
.axis-note {
  margin: 8px 0 24px;
}
.bar-row {
  display: grid;
  grid-template-columns: 165px minmax(0, 1fr) 58px;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 0;
  background: white;
  text-align: left;
  padding: 12px 8px;
  border-radius: 4px;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.bar-row.selected {
  background: #f0e8ff;
}
.bar-name {
  font-size: 13px;
}
.bar-track {
  height: 18px;
  background: #f4f5f9;
  border-radius: 3px;
  overflow: hidden;
}
.bar-track i {
  display: block;
  height: 100%;
  background: var(--intergalactic-chart-palette-order-1);
  border-radius: 3px;
}
.bar-row strong {
  text-align: right;
  font-size: 12px;
}
.bar-row:focus-visible {
  outline: 2px solid #008ff8;
  outline-offset: 2px;
}
.chart-note {
  margin-top: 24px;
}
.research dl {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  margin: 24px 0;
}
.research dt {
  color: #6c6e79;
}
.research dd {
  margin: 0;
  font-weight: 600;
}
.inspector-note {
  padding: 16px;
  background: #f4f5f9;
  border-radius: 6px;
}
.inspector-note h3 {
  font-size: 14px;
  margin: 0 0 8px;
}
.inspector-note p {
  font-size: 12px;
  margin: 0;
}
.retained {
  font-size: 12px;
  margin: 16px 0 0;
}
.no-results {
  text-align: center;
  padding: 32px 16px;
}
.no-results h3 {
  font-size: 18px;
}
.research footer {
  font-size: 12px;
  color: #6c6e79;
  margin-top: 24px;
}
@media (max-width: 950px) {
  .research-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 550px) {
  .research {
    padding: 16px;
  }
  .chart-panel,
  .research aside {
    padding: 16px;
  }
  .research-toolbar {
    gap: 16px;
  }
  .research-search {
    flex-basis: 100%;
  }
  .bar-row {
    grid-template-columns: minmax(0, 1fr) 50px;
    gap: 8px;
  }
  .bar-name {
    grid-column: 1/-1;
  }
  .bar-track {
    grid-column: 1;
  }
  .metric-options {
    flex-wrap: wrap;
  }
}

코드 참조

  • main.jsx와 같은 위치에 저장하세요. 이 사용자 지정 레이아웃 규칙은 라이브러리 토큰 참조와 구분됩니다.
04

Semrush Intergalactic 디자인 시스템 에이전트 설정

구현 시작점

고정된 기본 예제를 번들링한 뒤 로컬 브라우저에서 확인했습니다. 이 예제는 로컬 애플리케이션 상태만 사용합니다.

sh
npm create vite@latest intergalactic-compare -- --template react
cd intergalactic-compare
npm install
npm install [email protected] [email protected] @semcore/[email protected] @semcore/[email protected] @semcore/[email protected] @semcore/illustration
# Replace src/main.jsx and add src/intergalactic.css.
npm run dev

프로젝트를 위한 프롬프트

에이전트 프롬프트
기본 Intergalactic 컨트롤, 전용 가져오기, 최신 테마 토큰을 사용해 간결한 분석 비교 화면을 구성하세요. 단위, 고정 척도, 정렬, 선택 항목의 식별 정보를 일관되게 유지하세요. 텍스트 값과 빈 상태에서 복구할 방법을 제공하세요. 측정된 Semrush 데이터라고 주장하지 말고, fixture 측정값과 직접 작성한 차트 코드를 명확히 표시하세요.
05

Semrush Intergalactic 디자인 시스템 출처 및 범위

OpenDesign 애플리케이션 가이드. 키워드 레코드 6개와 모든 측정값은 가상 데이터입니다. 기본 Intergalactic 컨트롤로 직접 만든 HTML 차트를 구성했습니다. Semrush 보고서도 기본 D3 차트 구현도 아닙니다.