Langsung ke konten

Skin ​

Prop skin memilih tampilan chrome editor: toolbar, bubble menu, dropdown, dialog. Fitur bekerja sama di setiap skin. Konsep, tabel token, dan resepnya ada di panduan Skin.

Classic (default) ​

Toolbar yang menonjol, grup tombol berupa kotak menonjol, bubble menu bergaya kartu:

vue
<script setup lang="ts">
import { ref } from 'vue'

const content = ref('<p>The classic look: a raised toolbar with raised button groups.</p>')
</script>

<template>
  <Tiptapify
    v-model="content"
    placeholder="Classic skin..."
  />
</template>

Pastel ​

Toolbar datar berwarna lembut di bawah garis tipis, tombol ghost dengan status ditekan netral, dropdown ringan:

vue
<script setup lang="ts">
import { ref } from 'vue'

const content = ref('<p>The pastel look: a flat tinted toolbar with ghost buttons.</p>')
</script>

<template>
  <Tiptapify
    v-model="content"
    skin="pastel"
    placeholder="Pastel skin..."
  />
</template>

Kustom: mint ​

registerSkin menambahkan nama ke registry. Skin ini memperluas pastel dan menimpa beberapa token: rona mint pada lapisan toolbar, serta hijau tua untuk garis tepi gambar dan handle pengubah ukuran. Bentuknya yang tenang diwarisi dari pastel; semua yang tidak ditimpa (status tombol, menu, dialog) tetap memakai nilai pastel:

ts
// main.ts — call once, before any editor mounts
import { registerSkin } from 'tiptapify'

registerSkin('mint', {
  extends: 'pastel',
  colors: {
    toolbarBg: 'rgba(0, 128, 0, 0.05)',
    handleBg: 'rgb(0, 100, 0)',
    handleBgHover: 'rgb(0, 128, 0)',
    imageOutline: '2px solid rgb(0, 100, 0)',
    imageOutlineHover: 'rgba(0, 100, 0, 0.35)',
  },
})
vue
<template>
  <Tiptapify
    v-model="content"
    skin="mint"
    placeholder="Mint skin..."
  />
</template>

Root editor memiliki class tiptapify-skin-mint — jalan keluar untuk dimensi yang tidak tercakup katalog token (lihat Jalan keluar).

Skin inline ​

Prop skin juga menerima objek: penimpaan token dan flag bentuk, yang mewarisi dari skin terdaftar melalui extends. Objek ini diselesaikan melalui rantai yang sama, tidak pernah masuk ke registry, dan dirender dengan class tiptapify-skin-inline (atau tiptapify-skin-{name} jika objek memiliki name); token-nya muncul sebagai variabel CSS --tf-* pada root editor.

vue
<script setup lang="ts">
import { ref } from 'vue'

const content = ref('<p>A pastel editor with a green-tinted toolbar.</p>')

const mintSkin = {
  extends: 'pastel',
  colors: { toolbarBg: 'rgba(0, 128, 0, 0.05)' },
}
</script>

<template>
  <Tiptapify
    v-model="content"
    :skin="mintSkin"
    placeholder="Inline skin..."
  />
</template>

Dirilis di bawah Lisensi MIT.