All Projects → IBM → Vue A11y Calendar

IBM / Vue A11y Calendar

Licence: apache-2.0
Accessible, internationalized Vue calendar

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vue A11y Calendar

Vue Responsive Calendar
A responsive calendar component for Vue.js
Stars: ✭ 17 (-93.33%)
Mutual labels:  calendar, vue-component
Vue2 Calendar
vue 2.x calendar component
Stars: ✭ 477 (+87.06%)
Mutual labels:  calendar, vue-component
Vue Ctk Date Time Picker
VueJS component to select dates & time, including a range mode
Stars: ✭ 707 (+177.25%)
Mutual labels:  calendar, vue-component
Vue Draggablecal
Not your ordinary datepicker. A Vuejs draggable date selector with a fresh responsive design, mobile ready and 0 dependencies, 17kb gzipped
Stars: ✭ 79 (-69.02%)
Mutual labels:  calendar, vue-component
Vue Schedule Calendar
日程调度日历。
Stars: ✭ 110 (-56.86%)
Mutual labels:  calendar, vue-component
Privacy services manager
A single management utility to administer Location Services, Contacts requests, Accessibility, and iCloud access in Apple's OS X.
Stars: ✭ 115 (-54.9%)
Mutual labels:  accessibility, calendar
Core Components
Accessible and lightweight Javascript components
Stars: ✭ 85 (-66.67%)
Mutual labels:  accessibility, calendar
Moment.php
Parse, validate, manipulate, and display dates in PHP w/ i18n support. Inspired by moment.js
Stars: ✭ 900 (+252.94%)
Mutual labels:  internationalization, calendar
toast-ui.react-calendar
TOAST UI Calendar wrapper for React.js
Stars: ✭ 150 (-41.18%)
Mutual labels:  calendar
speakers-guide
RustFest Speakers Guide
Stars: ✭ 20 (-92.16%)
Mutual labels:  accessibility
react-micro-modal
Accessible, lightweight and configurable modal component with a11y-enabled.
Stars: ✭ 36 (-85.88%)
Mutual labels:  accessibility
date-range-picker
⚛️📆 Flexible React date range picker calendar with no dependencies.
Stars: ✭ 94 (-63.14%)
Mutual labels:  calendar
nlp-calendar
2022 call-for-paper ai nlp cv
Stars: ✭ 37 (-85.49%)
Mutual labels:  calendar
react-native-aria
A library of React Hooks for React-Native (Android/iOS/web) to provide accessible UI primitives for a design system.
Stars: ✭ 164 (-35.69%)
Mutual labels:  accessibility
react-native-draggable-calendar
A calendar component supporting dragging.
Stars: ✭ 95 (-62.75%)
Mutual labels:  calendar
Swash
Fonts in iOS made safe, expressive, and dynamic.
Stars: ✭ 73 (-71.37%)
Mutual labels:  accessibility
react-native-beautiful-timeline
Fully customizable, beautifully designed Timeline for React Native.
Stars: ✭ 111 (-56.47%)
Mutual labels:  calendar
tiny-wheels
一套基于原生JavaScript开发的组件库,无依赖、体积小、简单易用
Stars: ✭ 60 (-76.47%)
Mutual labels:  calendar
sugarcalendar-core
Sugar Calendar plugin for WordPress
Stars: ✭ 40 (-84.31%)
Mutual labels:  calendar
awesome-japanese-a11y-companies
アクセシビリティに取り組む・推進している日本企業まとめ(随時更新)
Stars: ✭ 24 (-90.59%)
Mutual labels:  accessibility

Vue A11Y Calendar

Localized, accessible calendar and datepicker for Vue with no external dependencies.

Installation

$ npm install vue-a11y-calendar

Peer Dependencies

Vue A11Y Calendar depends on Vue 2.4+ and if using webpack, Sass Loader 6.0+. Make sure they (and their peer dependencies) are installed and correctly configured in order to effectively use Vue A11Y Calendar. While this has been tested with webpack, it should work with any module bundler.

Recommended Webpack Configuration Additions

In addition to the required configuration for Sass Loader, the following configuration is recommended to be included:

const path = require('path');

function resolve (dir) {
  return path.join(__dirname, dir) // Change this to resolve to the root of your project
}

const config = {
  resolve: {
    extensions: ['.js', '.vue', '.json'],
    mainFiles: ['index', 'index.vue'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'), // Replace `src` with the path to your source files from the root of your project
      '~': resolve('node_modules'),
    },
  },
};

The above configuration will allow .js, .vue, and .json files to be imported/required without including their extensions, allow index.js and index.vue files to be found as files to be imported when importing/requiring a folder (so calendar/index.vue can just be included/requires as calendar), and will resolve Vue to the correct version, and allow shortcut imports @ for source files and ~ for Node modules (useful for things distributed through Node modules that can't be directly imported). This will allow for code like import foo from '@/foo'; and import calendar from 'vue-a11y-calendar/calendar';.

Components

Calendar

The Calendar component provides a responsive, dynamic, accessible, localized (using Date.prototype.toLocaleString()) month-based calendar.

Props

  • {string} locale - Any valid single locale for Date.prototype.toLocaleString()
  • {object} microcopy - Translatable strings for the microcopy for the calendar. All properties must be present to be valid.
    • {string} microcopy.today - String representation of Today: {date}. Must include {date}, which will be replaced with the localized date.
    • {string} microcopy.next - String representation of Next Month.
    • {string} microcopy.previous - String representation of Previous Month.

Events

  • dateSelected(target) - When a click event is fired on a date, this event will fire and pass the relevant target of the event.

Datepicker

The Datepicker component provides a dynamic, accessible, localized (using Date.prototype.toLocaleString()) month-based datepicker.

Props

  • {string} locale - Any valid single locale for Date.prototype.toLocaleString()
  • {string} label - A string for the label of the input field. Defaults to Choose a date.
  • {object} microcopy - Translatable strings for the microcopy for the calendar. All properties must be present to be valid.
    • {string} microcopy.today - String representation of Today: {date}. Must include {date}, which will be replaced with the localized date.
    • {string} microcopy.next - String representation of Next Month.
    • {string} microcopy.previous - String representation of Previous Month.
    • {string} microcopy.open - String representation of Open Calendar.
    • {string} microcopy.cancel - String representation of Cancel.
  • {object} inputs - Input names (so multiple datepickers can be used in the same form).
    • {string} inputs.local - Input name and ID for the visible, read-only input field. Defaults to date-local.
    • {string} inputs.month - Input name for the hidden numeric day input. Defaults to date-day.
    • {string} inputs.month - Input name for the hidden numeric month input. Defaults to date-month.
    • {string} inputs.year - Input name for the hidden numeric year input. Defaults to date-year.

Customization

Neither the Calendar component nor the Datepicker component use scoped styles or CSS modules. While this isn't ideal from a performance perspective, it is the only reasonable way to allow users to write custom CSS to style these components from within their own components. A downside to this is that implementing components can't have their styles scoped or use CSS modules either, or styling won't cascade properly. To change styling of one of these components, it is recommended to wrap it in a single component and mirror the props down.

Classes are styled using BEM to, as best as possible, target the exact elements to be styled.

Alternatively, the HTML, JS, and Sass for each component has been split out in to separate files that can be imported individually. The HTML and JS can used to rebuild the components piecemeal with custom styling (even allowing for scoped styling if desired).

Roadmap

We use ZenHub to manage our backlog and roadmap (items higher in our backlog pipeline are higher in our roadmap). You can view the board directly in the ZenHub webapp, or install the Chrome or Firefox extension and view it directly on GitHub.

External Licenses

The Calendar icon is licensed under the Creative Commons Attribution 4.0 International License by International Business Machines Corporation. It is from IBM Design Icons.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].