UNPKG

pickerjs

Version:
317 lines (274 loc) 5.91 kB
/*! * Picker.js v1.2.1 * https://fengyuanchen.github.io/pickerjs * * Copyright 2016-present Chen Fengyuan * Released under the MIT license * * Date: 2019-02-18T13:08:09.658Z */ :root { --gray: #999; --blue: #0074d9; --color: #333; --background-color: #fff; --border: 1px solid #eee; } .picker { background-color: rgba(0, 0, 0, 0.5); color: #333; color: var(--color); direction: ltr; display: none; font-size: 1rem; line-height: 1.5; overflow: hidden; -ms-touch-action: none; touch-action: none; -webkit-transition: opacity 0.15s; transition: opacity 0.15s; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .picker-fixed { bottom: 0; left: 0; position: fixed; right: 0; top: 0; z-index: 1986; } .picker-fixed > .picker-dialog { bottom: -100%; left: 0; max-height: 100%; position: absolute; right: 0; -webkit-transition: bottom 0.3s; transition: bottom 0.3s; } .picker-fixed .picker-header { display: block; } .picker-fixed .picker-footer { display: table; } .picker-open { display: block; opacity: 0; } .picker-opened { opacity: 1; } .picker-opened > .picker-dialog { bottom: 0; } .picker-dialog { background-color: #fff; background-color: var(--background-color); border: 1px solid #eee; border: var(--border); } .picker-header { border-bottom: 1px solid #eee; border-bottom: var(--border); display: none; padding: 0.875rem 1.25rem; position: relative; } .picker-title { font-size: 1.125rem; font-weight: 500; line-height: 1.25rem; margin: 0; } .picker-close { background-color: transparent; border-width: 0; color: #999; color: var(--gray); cursor: pointer; font-size: 1.75rem; height: 3rem; opacity: 0.75; padding: 0; position: absolute; right: 0; top: 0; width: 3rem; } .picker-close:focus, .picker-close:hover { opacity: 1; outline: none; } .picker-body { overflow: hidden; } .picker-grid { display: table; table-layout: fixed; width: 100%; } .picker-cell { display: table-cell; position: relative; } .picker-cell::before, .picker-cell::after { content: ''; display: block; left: 0; position: absolute; right: 0; z-index: 3; } .picker-cell::before { background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05))); background-image: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05)); bottom: 50%; margin-bottom: 1rem; top: 0; } .picker-cell::after { background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05))); background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05)); bottom: 0; margin-top: 1rem; top: 50%; } .picker-cell + .picker-cell { border-left: 1px solid #eee; border-left: var(--border); } .picker-headers .picker-cell::before { margin-bottom: 0; } .picker-headers .picker-cell::after { margin-top: 2rem; } .picker-single:not(.picker-controls):not(.picker-headers) .picker-cell::before, .picker-single:not(.picker-controls):not(.picker-headers) .picker-cell::after { display: none; } .picker-cell__header { color: #999; color: var(--gray); font-size: 0.875rem; font-weight: 500; line-height: 1.5rem; margin: 0; overflow: hidden; padding: 0.25rem 0.5rem; text-align: center; text-overflow: ellipsis; white-space: nowrap; } .picker-cell__control { cursor: pointer; height: 2rem; padding: 0.25rem 0.5rem; position: relative; z-index: 4; } .picker-cell__control::before { border: 0 solid #ccc; content: ''; display: block; height: 0.5rem; left: 50%; position: absolute; top: 50%; -webkit-transform: translate(-50%, -50%) rotate(-45deg); -ms-transform: translate(-50%, -50%) rotate(-45deg); transform: translate(-50%, -50%) rotate(-45deg); width: 0.5rem; } .picker-cell__control:hover::before { border-color: var(--primary); } .picker-cell__control--prev::before { border-right-width: 1px; border-top-width: 1px; margin-top: 2px; } .picker-cell__control--next::before { border-bottom-width: 1px; border-left-width: 1px; margin-bottom: 2px; } .picker-cell__body { overflow: hidden; position: relative; } .picker-cell__body::before, .picker-cell__body::after { content: ''; height: 2rem; left: 0; position: absolute; right: 0; z-index: 1; } .picker-cell__body::before { background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 1))); background-image: linear-gradient(to top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)); top: 0; } .picker-cell__body::after { background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 1))); background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)); bottom: 0; } .picker-single .picker-cell__body::before, .picker-single .picker-cell__body::after { display: none; } .picker-list { list-style: none; margin: -2rem 0; padding: 0; position: relative; } .picker-item { color: #999; color: var(--gray); padding: 0.25rem 0.5rem; text-align: center; white-space: nowrap; } .picker-picked { color: #0074d9; color: var(--blue); font-size: 1.125em; line-height: 1.5rem; } .picker-footer { border-top: 1px solid #eee; border-top: var(--border); display: none; width: 100%; } .picker-cancel, .picker-confirm { background-color: transparent; border-width: 0; cursor: pointer; display: table-cell; font-size: 1rem; padding: 0.75rem 1rem; width: 50%; } .picker-cancel:focus, .picker-cancel:hover, .picker-confirm:focus, .picker-confirm:hover { background-color: #fcfcfc; outline: none; } .picker-confirm { color: #0074d9; color: var(--blue); }