Skip to content

CSS Classes Reference

The library uses these CSS classes that you can style to customize the appearance of vue-foundation components.

Class Reference

ClassUsed ByDescription
.vf-overlayModal, context menuFixed full-screen overlay
.vf-modal-wrapVfModalModal backdrop (semi-transparent)
.vf-modalVfModalModal container
.vf-modal-headerVfModalModal header slot container
.vf-modal-contentVfModalModal content slot container
.vf-modal-footerVfModalModal footer slot container
.vf-alertVfAlertModalAlert modal wrapper
.vf-toastVfToastToast container
.vf-tooltipv-tooltipTooltip element
.vf-maskmaskEl/maskComponentComponent overlay mask
.vf-maskedmaskFormApplied to masked forms
.vf-smart-selectVfSmartSelectSelect wrapper
.vf-smart-select-optionsVfSmartSelectOptions dropdown
.vf-context-menushowContextMenuContext menu
.vf-overlay-anchorOverlayAnchorAnchored overlay wrapper
.vf-modal-openVfModalApplied to <body> when a modal is open

Styling Example

You can override these classes in your application's CSS to match your design system:

css
.vf-modal {
    background: white;
    border-radius: 8px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
    min-width: 320px;
    max-width: 90vw;
    max-height: 90vh;
}

.vf-modal-header {
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
    font-weight: 600;
}

.vf-modal-content {
    padding: 20px;
}

.vf-modal-footer {
    padding: 12px 20px;
    border-top: 1px solid #eee;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.vf-toast {
    position: fixed;
    z-index: 1002;
    padding: 12px 16px;
    border-radius: 6px;
    background: #333;
    color: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.vf-tooltip {
    position: fixed;
    z-index: 1003;
    background: #333;
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 13px;
}

.vf-context-menu {
    position: fixed;
    z-index: 1003;
    background: white;
    border: 1px solid #ddd;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    min-width: 160px;
    padding: 4px 0;
}