Semantic UI Vue

0.11.0 · abandoned · verified Sun Apr 19

semantic-ui-vue is a Vue.js integration of the Semantic UI CSS framework, aiming to provide a component library with an API highly inspired by Semantic UI React. The latest stable version, 0.11.0, was released in June 2020. The project's release cadence appears to be stalled, with the last significant activity occurring over four years ago. A key differentiator is its goal of mirroring the Semantic UI React API, making it potentially familiar to developers transitioning between React and Vue. However, the project is explicitly seeking maintainers and states it is 'under heavy development' despite the lack of recent updates, which is a significant point of concern for stability and ongoing support. Users must manually include Semantic UI CSS stylesheets as a separate step for the components to render correctly.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to set up Semantic UI Vue by globally registering the plugin with Vue 2 and then using various Semantic UI components like buttons and headers, highlighting the required external CSS import for proper styling.

import Vue from 'vue';
import SuiVue from 'semantic-ui-vue';

// Ensure Semantic UI CSS is loaded. For example, by importing 'semantic-ui-css/semantic.min.css'
// or including a CDN link in your index.html: <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css" />

Vue.use(SuiVue);

new Vue({
  el: '#app',
  data: {
    message: 'Hello from Semantic UI Vue!'
  },
  template: `
    <div class="ui container" style="margin-top: 20px;">
      <sui-header as="h2">
        <sui-icon name="settings" />
        <sui-header-content>
          My Application
          <sui-header-subheader>Manage your preferences</sui-header-subheader>
        </sui-header-content>
      </sui-header>
      <sui-button primary @click="message = 'Button Clicked!'">
        Click Me
      </sui-button>
      <sui-button secondary>
        Secondary
      </sui-button>
      <p style="margin-top: 15px;">{{ message }}</p>
    </div>
  `
});

view raw JSON →