ProseCodeSamenvouwen

GitHub
Maak lange codeblokken inklapbaar om ruimte te besparen en de leesbaarheid te verbeteren.

Gebruik

Wikkel je codeblok in met een code-collapse-component om een opvouwbaar codeblok weer te geven.

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 "staartwindcss";
@ import "@ nuxt / ui";

@ thema statisch {
--font-sans: 'Openbaar zonder', zonder serif;

--breekpunt-3xl: 1920px;

--kleur-groen-50: # EFFDF5;
--kleur-groen-100: # D9FBE8;
--kleur-groen-200: # B3F5D1;
--kleur-groen-300: # 75EDAE;
--kleur-groen-400: # 00DC82;
--kleur-groen-500: # 00C16A;
--kleur-groen-600: # 00A155;
--kleur-groen-700: # 007F45;
--kleur-groen-800: # 016538;
--kleur-groen-900: # 0A5331;
--kleur-groen-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; }

Slots

Slot Type
default
{}

Thema

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'
                }
              }
            }
          }
        }
      }
    })
  ]
})

Wijzigingsgelog

No recent changes