svelte-bulma-components

Collection of Bulma UI components to be used in Svelte or standalone

Github星跟踪图

svelte-bulma-components

Library of UI components to be used in Svelte.js or standalone.

A convenient way to implement interactive Bulma components.

Available components

  • Dropdown
  • Modal
  • ModalCard
  • Navbar
  • Pagination
  • Tabs

Demo at http://svelte-bulma-components.surge.sh/

Install

npm install svelte-bulma-components

Use

Import the components you need in your Svelte project.

import {
  Dropdown,
  DropdownLink,
  Modal
} from 'svelte-bulma-components/module'

export default {
  components: {
    Dropdown,
    DropdownLink,
    Modal,
	...
  }
}

And then use them like so:

  <Dropdown label="Dropdown">
    <DropdownLink href="/">A dropdown link</DropdownLink>
    <DropdownLink href="/" active>This link is active</DropdownLink>
    <DropdownLink href="/">Another link item</DropdownLink>
  </Dropdown>

Don't forget to include the Bulma and Font Awesome CSS files!

For including styles, you can either place the below styles in the <head> of your template:

<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

Or you can import them to your webpack/rollup entry point:

require('/path/to/node_modules/bulma/css/bulma.min.css')
require('/path/to/node_modules/font-awesome/css/font-awesome.min.css')

Note that you'll have to install bulma and font-awesome first

An interactive dropdown menu for discoverable content.
DropdownLink elements emit an onclick event with the value of the href attribute.

Markup

<Dropdown label="Dropdown">
  <DropdownItem><h5>Dropdown Item</h5>Not clickable</DropdownItem>
  <DropdownDivider />
  <DropdownLink href="/" on:click="logEvent(event)">A dropdown link</DropdownLink>
  <DropdownLink href="/" active>This link is active</DropdownLink>
  <DropdownLink href="/">Another link item</DropdownLink>
</Dropdown>

Options, Prop, Type, Default, Required, Description, ------, ------, ---------, ----------, -------------, label, String, '', true, text of dropdown label, hoverable, Boolean, false, false, open menu on hover instead of click, up, Boolean, false, false, popup instead of down, right, Boolean, false, false, align right

A classic modal overlay, in which you can include any content you want

Markup

<Modal {active} on:close="set({ active: false })">
  <p>
    ...
  </p>
</Modal>

ModalCard

A modal card, with a head, a body and a foot. This components emits an onclose event when closed with success or cancel as value.

Markup

<ModalCard {active} color="link" on:close="cardClosed(event)">
  <span slot="title">Modal card title</span>
  <span slot="content">
    ...
  </span>
  <span slot="success">Save changes</span>
  <span slot="cancel">Cancel</span>            
</ModalCard>

Options, Prop, Type, Default, Required, Description, ------, ------, ---------, ----------, -------------, color, String, success, false, color of the success button

Slots, Slot, Default, Required, Description, ------, ---------, ----------, -------------, title, -, true, title of the modal dialog, content, -, true, the content of the modal, success, Submit, false, label of the success button, cancel, Cancel, false, label of the cancel button

A responsive horizontal navbar that can support images, links, buttons, and dropdowns

Markup

<Navbar>
  <!-- navbar-brand -->
  <span slot="brand">
    <NavbarItem href="#">
      <img src="/images/brand-logo.png" alt="Logo">
    </NavbarItem>
  </span>

  <!-- navbar-start -->
  <NavbarStart>
    <NavbarItem href="#">Documentation</NavbarItem>
    <NavbarItem href="#">Videos</NavbarItem>
    <NavbarItem href="#">...</NavbarItem>
  </NavbarStart>

  <!-- navbar-end -->
  <NavbarEnd>
    <NavbarItem>
      <p class="control">
        <a class="button is-info" href="#">
          <strong>Download</strong>
        </a>
      </p>
    </NavbarItem>
  </NavbarEnd>
</Navbar>

Options, Prop, Type, Default, Required, Description, ------, ------, ---------, ----------, -------------, fixedTop, Boolean, false, false, fixes navbar to top of page, fixedBottom, Boolean, false, false, fixes navbar to bottom, color, String, -, false, background color of the navbar, transparent, Boolean, false, false, sets navbar transparency, noBodyClass, Boolean, false, false, do not add classes to <body>

Pagination

A responsive, usable, and flexible pagination component.

The pagination component emits an onchange event with the selected page number.

Markup

<Pagination current="10" total="20" show="5" on:change="gotoPage(event)" />

Tabs

Simple responsive horizontal navigation tabs, with different styles.

Tab items emit an onclick event with the #id of the selected tab.

Markup

<TabsContainer align="centered" boxed>
  <TabItem active label="Pictures" icon="fa fa-image" on:click="setTab(event)" />
  <TabItem label="Music" on:click="setTab(event)" />
  <TabItem label="Videos" on:click="setTab(event)" />
  <TabItem label="Documents" on:click="setTab(event)" />
</TabsContainer>

Options, Prop, Type, Default, Required, Description, ------, ------, ---------, ----------, -------------, align, String, -, false, align centered or right, boxed, Boolean, false, false, classical, boxed tabs, size, String, -, false, sets size of pagination component, toggle, Boolean, false, false, toggle button like tabs, rounded, Boolean, false, false, rounded, can be used with toggle, fullWidth, Boolean, false, false, consume whole width available

Slots, Slot, Default, Required, Description, ------, ---------, ----------, -------------, default, -, true, set of <TabItem> tabs

Custom classes (new in 0.1.4)

You can now easily add custom classes to the components by adding a regular class attribute:

<Dropdown label="My dropdown" class="my-custom-class">

NOTE: because Svelte component CSS is scoped, you'll have to add the global modifier to your CSS selectors:

:global(.my-custom-class) {
  ...
}

Made with Svelte

It's made with Svelte, which means you don't need any JS framework. Just use the file in the dist directory in any Javascript project.

See also

Reference

主要指标

概览
名称与所有者elcobvg/svelte-bulma-components
主编程语言HTML
编程语言JavaScript (语言数: 2)
平台
许可证MIT License
所有者活动
创建于2018-07-18 02:25:17
推送于2018-08-20 04:35:55
最后一次提交2018-08-20 11:35:16
发布数5
最新版本名称v0.1.3 (发布于 2018-07-25 09:25:45)
第一版名称v0.0.2 (发布于 2018-07-19 09:16:35)
用户参与
星数95
关注者数4
派生数6
提交数15
已启用问题?
问题数2
打开的问题数1
拉请求数0
打开的拉请求数0
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?