@use 'ui-design-system/src/styles/semantic/index' as *; .demo-container { padding: $semantic-spacing-layout-section-md; } .demo-section { margin-bottom: $semantic-spacing-layout-section-lg; h3 { font-family: map-get($semantic-typography-heading-h3, font-family); font-size: map-get($semantic-typography-heading-h3, font-size); font-weight: map-get($semantic-typography-heading-h3, font-weight); line-height: map-get($semantic-typography-heading-h3, line-height); color: $semantic-color-text-primary; margin-bottom: $semantic-spacing-content-heading; } } .demo-row { display: flex; gap: $semantic-spacing-grid-gap-md; flex-wrap: wrap; } .demo-column { display: flex; flex-direction: column; gap: $semantic-spacing-stack-md; } .demo-example { flex: 1; min-width: 250px; h4 { font-family: map-get($semantic-typography-heading-h4, font-family); font-size: map-get($semantic-typography-heading-h4, font-size); font-weight: map-get($semantic-typography-heading-h4, font-weight); line-height: map-get($semantic-typography-heading-h4, line-height); color: $semantic-color-text-primary; margin-bottom: $semantic-spacing-component-sm; } } .demo-boundary { border: 2px dashed $semantic-color-border-secondary; background-color: rgba(128, 128, 128, 0.1); min-height: 100px; width: 100%; } .demo-content { background: $semantic-color-surface-elevated; padding: $semantic-spacing-component-md; border-radius: $semantic-border-radius-md; border: 1px solid $semantic-color-border-primary; box-shadow: $semantic-shadow-elevation-1; color: $semantic-color-text-primary; text-align: center; font-family: map-get($semantic-typography-body-medium, font-family); font-size: map-get($semantic-typography-body-medium, font-size); font-weight: map-get($semantic-typography-body-medium, font-weight); line-height: map-get($semantic-typography-body-medium, line-height); } .demo-content-small { background: $semantic-color-primary; color: $semantic-color-on-primary; padding: $semantic-spacing-component-xs; border-radius: $semantic-border-radius-sm; font-size: $semantic-typography-font-size-sm; font-weight: $semantic-typography-font-weight-medium; } .demo-inline { margin: 0 $semantic-spacing-component-xs; } .demo-card { background: $semantic-color-surface-primary; padding: $semantic-spacing-component-xl; border-radius: $semantic-border-radius-lg; box-shadow: $semantic-shadow-elevation-2; border: 1px solid $semantic-color-border-subtle; text-align: center; max-width: 400px; h3 { font-family: map-get($semantic-typography-heading-h3, font-family); font-size: map-get($semantic-typography-heading-h3, font-size); font-weight: map-get($semantic-typography-heading-h3, font-weight); line-height: map-get($semantic-typography-heading-h3, line-height); color: $semantic-color-text-primary; margin-bottom: $semantic-spacing-content-paragraph; } p { font-family: map-get($semantic-typography-body-medium, font-family); font-size: map-get($semantic-typography-body-medium, font-size); font-weight: map-get($semantic-typography-body-medium, font-weight); line-height: map-get($semantic-typography-body-medium, line-height); color: $semantic-color-text-secondary; margin-bottom: $semantic-spacing-component-lg; } } .demo-loading { text-align: center; .demo-spinner { width: 40px; height: 40px; border: 4px solid $semantic-color-border-subtle; border-top: 4px solid $semantic-color-primary; border-radius: $semantic-border-radius-full; animation: spin 1s linear infinite; margin: 0 auto $semantic-spacing-component-md auto; } p { font-family: map-get($semantic-typography-body-medium, font-family); font-size: map-get($semantic-typography-body-medium, font-size); font-weight: map-get($semantic-typography-body-medium, font-weight); line-height: map-get($semantic-typography-body-medium, line-height); color: $semantic-color-text-secondary; } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .demo-hero { text-align: center; h2 { font-family: map-get($semantic-typography-heading-h2, font-family); font-size: map-get($semantic-typography-heading-h2, font-size); font-weight: map-get($semantic-typography-heading-h2, font-weight); line-height: map-get($semantic-typography-heading-h2, line-height); color: $semantic-color-text-primary; margin-bottom: $semantic-spacing-content-heading; } p { font-family: map-get($semantic-typography-body-large, font-family); font-size: map-get($semantic-typography-body-large, font-size); font-weight: map-get($semantic-typography-body-large, font-weight); line-height: map-get($semantic-typography-body-large, line-height); color: $semantic-color-text-secondary; margin-bottom: $semantic-spacing-component-xl; } } .demo-button { background: $semantic-color-surface-secondary; color: $semantic-color-text-primary; border: 1px solid $semantic-color-border-primary; padding: $semantic-spacing-interactive-button-padding-y $semantic-spacing-interactive-button-padding-x; border-radius: $semantic-border-button-radius; font-family: map-get($semantic-typography-button-medium, font-family); font-size: map-get($semantic-typography-button-medium, font-size); font-weight: map-get($semantic-typography-button-medium, font-weight); line-height: map-get($semantic-typography-button-medium, line-height); cursor: pointer; transition: all $semantic-motion-duration-fast $semantic-motion-easing-ease; &:hover { background: $semantic-color-surface-elevated; box-shadow: $semantic-shadow-button-hover; } &--primary { background: $semantic-color-primary; color: $semantic-color-on-primary; border-color: $semantic-color-primary; &:hover { opacity: $semantic-opacity-hover; } } } @media (max-width: 768px) { .demo-row { flex-direction: column; } .demo-example { min-width: auto; } }