07솔리드 CTA 밴드
밴드 배경을 그라디언트 없이 브랜드 파란색 단색으로 채우고, 안의 흰 버튼만 마우스를 올리면 살짝 떠오르며 그림자가 깊어집니다. 색을 하나로 줄이는 것이 이 스타일의 절제입니다.
쓰임가입 유도 띠, 데모 신청 CTA
단색 배경버튼 lift 호버radius pill

<main class="stage">
<section class="ctaband">
<h2 class="ctaband__title">지금 무료로 시작하세요</h2>
<p class="ctaband__desc">신용카드 없이 14일 체험</p>
<button class="ctaband__btn" type="button">데모 신청</button>
</section>
</main>@use "../../../../site/static/demo-tokens" as *;
$duration: $dur-loop;
$easing: $ease-out;
$color: $subject-blue;
$trust-bluetint: #eaf1ff;
$trust-blue-deep: #7386ba;
@include stage($trust-bluetint);
.ctaband {
box-sizing: border-box;
width: clamp(240px, 82vw, 340px);
display: flex;
flex-direction: column;
align-items: center;
gap: $sp-2;
padding: $sp-6 $sp-4;
border-radius: $r-card;
background: $trust-blue-deep;
text-align: center;
box-shadow: 0 16px 30px rgba($trust-blue-deep, .32);
}
.ctaband__title {
margin: 0;
color: $stage-paper;
font-weight: 700; font-size: clamp(16px, 4.4vw, 21px); line-height: 1.3;
font-family: inherit;
}
.ctaband__desc {
margin: 0;
color: rgba($stage-paper, .82);
font-weight: 500; font-size: clamp(11px, 2.8vw, 13px); line-height: 1.4;
font-family: inherit;
}
.ctaband__btn {
margin-top: $sp-1;
border: 0;
border-radius: $r-pill;
background: $stage-paper;
color: $trust-blue-deep;
padding: $sp-2 $sp-6;
font-weight: 700; font-size: clamp(12px, 2.8vw, 14px); line-height: 1;
font-family: inherit;
box-shadow: 0 6px 14px rgba(23, 20, 26, .18);
animation: btnLift $duration $easing infinite;
}
.ctaband__btn:focus-visible {
outline: 3px solid $stage-paper;
outline-offset: 2px;
}
// 데모: 흰 버튼만 눌렸다 떠오르기를 반복한다 — 배경은 그라디언트 없이 진한 파란 단색 그대로 고정
@keyframes btnLift {
0%, 100% { transform: translateY(0); box-shadow: 0 6px 14px rgba(23, 20, 26, .18); }
50% { transform: translateY(-4px); box-shadow: 0 12px 22px rgba(23, 20, 26, .24); }
}
@media (max-width: 340px), (max-height: 220px) {
.ctaband { padding: $sp-4 $sp-3; gap: $sp-1; }
.ctaband__desc { display: none; }
.ctaband__btn { padding: $sp-1 $sp-4; margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
.ctaband__btn { animation: none !important; transform: none; }
}html, body {
margin: 0;
overflow: hidden;
}
.stage {
box-sizing: border-box;
min-height: 100vh;
display: grid;
place-items: center;
margin: 0;
background: #eaf1ff;
font-family: -apple-system, "Segoe UI", "Noto Sans KR", sans-serif;
padding: clamp(8px, 4vw, 24px);
}
.ctaband {
box-sizing: border-box;
width: clamp(240px, 82vw, 340px);
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 24px 16px;
border-radius: 16px;
background: #7386ba;
text-align: center;
box-shadow: 0 16px 30px rgba(115, 134, 186, 0.32);
}
.ctaband__title {
margin: 0;
color: #ffffff;
font-weight: 700;
font-size: clamp(16px, 4.4vw, 21px);
line-height: 1.3;
font-family: inherit;
}
.ctaband__desc {
margin: 0;
color: rgba(255, 255, 255, 0.82);
font-weight: 500;
font-size: clamp(11px, 2.8vw, 13px);
line-height: 1.4;
font-family: inherit;
}
.ctaband__btn {
margin-top: 4px;
border: 0;
border-radius: 999px;
background: #ffffff;
color: #7386ba;
padding: 8px 24px;
font-weight: 700;
font-size: clamp(12px, 2.8vw, 14px);
line-height: 1;
font-family: inherit;
box-shadow: 0 6px 14px rgba(23, 20, 26, 0.18);
animation: btnLift 2s ease-out infinite;
}
.ctaband__btn:focus-visible {
outline: 3px solid #ffffff;
outline-offset: 2px;
}
@keyframes btnLift {
0%, 100% {
transform: translateY(0);
box-shadow: 0 6px 14px rgba(23, 20, 26, 0.18);
}
50% {
transform: translateY(-4px);
box-shadow: 0 12px 22px rgba(23, 20, 26, 0.24);
}
}
@media (max-width: 340px), (max-height: 220px) {
.ctaband {
padding: 16px 12px;
gap: 4px;
}
.ctaband__desc {
display: none;
}
.ctaband__btn {
padding: 4px 16px;
margin-top: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.ctaband__btn {
animation: none !important;
transform: none;
}
}import type { CSSProperties } from "react";
import styles from "./CtaBandTrust.module.scss";
export type CtaBandTrustProps = {
title?: string;
desc?: string;
cta?: string;
duration?: number;
easing?: string;
color?: string;
};
type Vars = CSSProperties & { "--duration"?: string; "--easing"?: string; "--color"?: string };
export default function CtaBandTrust({
title = "지금 무료로 시작하세요",
desc = "신용카드 없이 14일 체험",
cta = "데모 신청",
duration = 2000,
easing = "ease-out",
color = "#1d4ed8",
}: CtaBandTrustProps) {
const vars: Vars = { "--duration": `${duration}ms`, "--easing": easing, "--color": color };
return (
<section className={styles.band} style={vars}>
<h2 className={styles.title}>{title}</h2>
<p className={styles.desc}>{desc}</p>
<button type="button" className={styles.btn}>{cta}</button>
</section>
);
}07 솔리드 CTA 밴드 — 측정 누적면적 1.019% · 움직인 프레임 22/23GODRICH 원작 · zip 에 SCSS·React 포함 · saas 랜딩페이지 신뢰감 디자인 키트, 클린 섹션 9개
이 데모가 속한 글
saas 랜딩페이지 신뢰감 디자인 키트, 클린 섹션 9개saas 랜딩페이지 디자인은 흰색과 오프화이트 두 톤 배경 위에 파란색 브랜드 컬러 하나만 얹고, 그림자는 회색 계열로 얕게, 모서리는 절제된 반경으로 통일해 화려하지 않으면서도 진지해 보이게 만드는 스타일입니다. 이 글의 데모 전부 보기


