ProseCodeCollapse

GitHub
使长代码块可折叠以节省空间并提高可读性。

用法

使用code-collapse组件包装代码块以显示可折叠的代码块。

app/assets/css/main.css
@import "tailwindcss";
@import "@nuxt/ui";

@theme static {
  --font-sans: 'Public Sans', sans-serif;

  --breakpoint-3xl: 1920px;

  --color-green-50: #EFFDF5;
  --color-green-100: #D9FBE8;
  --color-green-200: #B3F5D1;
  --color-green-300: #75EDAE;
  --color-green-400: #00DC82;
  --color-green-500: #00C16A;
  --color-green-600: #00A155;
  --color-green-700: #007F45;
  --color-green-800: #016538;
  --color-green-900: #0A5331;
  --color-green-950: #052E16;
}
::code-collapse

```css [app/assets/css/main.css]
@import“tailwindcss”;
@import“@nuxt/ui”;

@theme static {
  --font-sans:'Public Sans',sans-serif;

  --breakpoint-3xl:1920px;

  --color-green-50:#00DF5;
  --color-green-100:#D9FBE8;
  --color-green-200:#B3F5D1;
  --color-green-300:#75EDAE;
  --color-green-400:#00DC82;
  --color-green-500:#00C16A;
  --color-green-600:#00A155;
  --color-green-700:#007F45;
  --color-green-800:#016538;
  --color-green-900:#0A5331;
  --color-green-950:#052E16;
}
```

::

API

Props

Prop Default Type
icon
appConfig.ui.icons.chevronDown
any

The icon displayed to toggle the code.

name
t('prose.codeCollapse.name')
string

The name displayed in the trigger label.

openText
t('prose.codeCollapse.openText')
string

The text displayed when the code is collapsed.

closeText
t('prose.codeCollapse.closeText')
string

The text displayed when the code is expanded.

open
false
boolean
ui
{ root?: SlotClass; footer?: SlotClass; trigger?: SlotClass; triggerIcon?: SlotClass; }

老虎机

Slot Type
default
{}

Theme

app.config.ts
export default defineAppConfig({
  ui: {
    prose: {
      codeCollapse: {
        slots: {
          root: 'relative my-5 bg-muted [&>div]:my-0 [&_pre]:max-h-[80vh] [&_pre]:pb-12',
          footer: 'h-16 absolute inset-x-px bottom-px rounded-b-md flex items-center justify-center',
          trigger: 'group',
          triggerIcon: 'group-data-[state=open]:rotate-180'
        },
        variants: {
          open: {
            true: {
              root: 'rounded-md'
            },
            false: {
              root: 'max-h-[200px] overflow-hidden rounded-b-md [&_pre]:overflow-hidden',
              footer: 'inset-x-0 bottom-0 border border-t-0 border-muted bg-linear-to-t from-muted'
            }
          }
        }
      }
    }
  }
})
vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'

export default defineConfig({
  plugins: [
    vue(),
    ui({
      ui: {
        prose: {
          codeCollapse: {
            slots: {
              root: 'relative my-5 bg-muted [&>div]:my-0 [&_pre]:max-h-[80vh] [&_pre]:pb-12',
              footer: 'h-16 absolute inset-x-px bottom-px rounded-b-md flex items-center justify-center',
              trigger: 'group',
              triggerIcon: 'group-data-[state=open]:rotate-180'
            },
            variants: {
              open: {
                true: {
                  root: 'rounded-md'
                },
                false: {
                  root: 'max-h-[200px] overflow-hidden rounded-b-md [&_pre]:overflow-hidden',
                  footer: 'inset-x-0 bottom-0 border border-t-0 border-muted bg-linear-to-t from-muted'
                }
              }
            }
          }
        }
      }
    })
  ]
})

Changelog

No recent changes