위젯 커스터마이징
위젯의 외관과 동작을 data-* 속성(Script Tag) 또는 HTML 속성(Web Component)으로 커스터마이징할 수 있습니다.
설정 옵션
| 옵션 | data 속성 | 값 | 기본값 | 설명 |
|---|---|---|---|---|
| 위젯 유형 | data-type |
quote-of-the-day, random |
— (필수) | 표시할 위젯 유형 |
| 언어 | data-lang |
ko, en |
ko |
명언 언어 |
| 테마 | data-theme |
light, dark |
light |
위젯 테마 |
| 너비 | data-width |
CSS 값 | 100% |
위젯 너비 |
| 최대 너비 | data-max-width |
CSS 값 | 500px |
위젯 최대 너비 |
| 저자 표시 | data-show-author |
true, false |
true |
저자 이름 표시 여부 |
| 토픽 표시 | data-show-topics |
true, false |
false |
토픽 태그 표시 여부 |
| 새로고침 버튼 | data-show-refresh |
true, false |
false |
새로고침 버튼 (random 전용) |
| 브랜딩 | data-show-branding |
true, false |
true |
"Powered by InspireMe" 표시 |
| 모서리 둥글기 | data-border-radius |
CSS 값 | 12px |
위젯 모서리 둥글기 |
| 강조 색상 | data-accent-color |
CSS 색상 | 테마 기본색 | 강조 색상 |
예시
기본 (오늘의 명언, 한국어, 라이트 테마)
<div id="inspireme-widget"></div>
<script
src="https://inspireme.advenoh.pe.kr/widget/embed.js"
data-type="quote-of-the-day"
></script>
다크 테마 + 영어
<div id="inspireme-widget"></div>
<script
src="https://inspireme.advenoh.pe.kr/widget/embed.js"
data-type="quote-of-the-day"
data-lang="en"
data-theme="dark"
></script>
랜덤 명언 + 새로고침 버튼
<div id="inspireme-widget"></div>
<script
src="https://inspireme.advenoh.pe.kr/widget/embed.js"
data-type="random"
data-lang="ko"
data-show-refresh="true"
></script>
커스텀 스타일
<div id="inspireme-widget"></div>
<script
src="https://inspireme.advenoh.pe.kr/widget/embed.js"
data-type="quote-of-the-day"
data-theme="dark"
data-max-width="600px"
data-border-radius="0"
data-accent-color="#ff6b6b"
data-show-topics="true"
></script>
Web Component 방식
Web Component(<inspireme-quote>)에서는 동일한 옵션을 HTML 속성으로 전달합니다. 속성명은 kebab-case를 사용합니다.
<script src="https://inspireme.advenoh.pe.kr/widget/inspireme-quote.js"></script>
<!-- 다크 테마 + 영어 + 토픽 표시 -->
<inspireme-quote
type="quote-of-the-day"
lang="en"
theme="dark"
show-author="true"
show-topics="true"
></inspireme-quote>
<!-- 슬라이더 + 커스텀 스타일 -->
<inspireme-quote
type="slider"
lang="ko"
theme="auto"
slide-count="5"
slide-interval="8"
accent-color="#ff6b6b"
></inspireme-quote>
Web Component 이벤트:
| 이벤트 | 설명 |
|---|---|
quote-loaded |
명언 로드 완료 시 발행 (event.detail에 명언 데이터 포함) |
quote-error |
에러 발생 시 발행 (event.detail에 에러 정보 포함) |
const widget = document.querySelector('inspireme-quote');
widget.addEventListener('quote-loaded', (e) => {
console.log(e.detail); // { content: "...", author: "..." }
});
동적 속성 변경:
Web Component는 속성 변경 시 자동으로 위젯을 업데이트합니다.
const widget = document.querySelector('inspireme-quote');
widget.setAttribute('theme', 'dark'); // 즉시 다크 테마로 전환
widget.setAttribute('lang', 'en'); // 영어 명언으로 변경
테마 미리보기
Light 테마
밝은 배경(#ffffff)에 어두운 텍스트로 표시됩니다. 밝은 색상 배경의 사이트에 적합합니다.
Dark 테마
어두운 배경(#1a1a2e)에 밝은 텍스트로 표시됩니다. 다크 모드 사이트나 어두운 배경에 적합합니다.