Blueprint components react overlay date picker.
+
+.pt-monospace-text - Use a monospace font (ideal for code)
+
+@## Headings
+
+Markup:
+Blueprint components react overlay date picker.
+
+.pt-ui-text - Default UI text. This is applied to the document body as part of core styles.
+.pt-ui-text-large - Larger UI text.
+
+@## Running text
+
+Large blocks of _running text_ should use `.pt-running-text` styles.
+
+Note that `` elements by default don't add any styles; they just inherit the base typography.
+This is a conservative design; `
` elements are so ubiquitous that they're more often used for UI
+text than long form text. It's up to the user to decide which blocks of text in an application
+should get running text styles.
+
+Markup:
+
` tag as you normally would. No class is necessary for Blueprint styles.
+Links are underlined only when hovered.
+
+Putting an icon inside a link will cause it to inherit the link's text color.
+
+@## Preformatted text
+
+Use `` for code blocks, and `` for inline code. Note that `` blocks will
+retain _all_ whitespace so you'll have to format the content accordingly.
+
+Markup:
+```html
+$ npm install
+
+ %pt-select {
+ @include pt-button();
+ @include prefixer(appearance, none, webkit moz);
+ border-radius: $pt-border-radius;
+ height: $pt-button-height;
+ padding: 0 ($input-padding-horizontal * 3) 0 $input-padding-horizontal;
+ }
+
+export function hasModifier(modifiers: ts.ModifiersArray, ...modifierKinds: ts.SyntaxKind[]) {
+ if (modifiers == null || modifierKinds == null) {
+ return false;
+ }
+ return modifiers.some((m) => {
+ return modifierKinds.some((k) => m.kind === k);
+ });
+}
+```
+
+@## Block quotes
+
+Block quotes are treated as running text.
+
+Markup:
+
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
+labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
+laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
+labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
+laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+
+@## Lists
+
+Blueprint provides a small amount of global styling and a few modifier classes for list elements.
+
+`
` and `` elements in blocks with the `.pt-running-text` modifier class will
+automatically assume the `.pt-list` styles to promote readability.
+
+Markup:
+
+ - Item the first
+ - Item the second
+ - Item the third
+
+
+ - Item the first
+ - Item the second
+ - Item the third
+
+
+.pt-list - Add a little spacing between items for readability.
+.pt-list-unstyled - Remove all list styling (including indicators) so you can add your own.
+
+@## Text utilities
+
+Blueprint provides a small handful of class-based text utilities which can applied to any element
+that contains text.
+
+Markup:
+
+Blueprint components react overlay date picker. Breadcrumbs dialog progress non-ideal state.
+
+
+.pt-text-muted - Changes text color to a gentler gray.
+.pt-text-overflow-ellipsis - Truncates a single line of text with an ellipsis if it overflows its
+container.
+
+@## Internationalization
+
+@### Right-to-left text
+
+Use the utility class `.pt-rtl`.
+
+Markup:
+Arabic:
+
+ لكل لأداء بمحاولة من. مدينة الواقعة يبق أي, وإعلان وقوعها، حول كل, حدى عجّل مشروط الخاسرة قد.
+ من الذود تكبّد بين, و لها واحدة الأراضي. عل الصفحة والروسية يتم, أي للحكومة استعملت شيء. أم وصل زهاء اليا
+
+Hebrew:
+
+ כדי על עזרה יידיש הבהרה, מלא באגים טכניים דת. תנך או ברית ביולי. כתב בה הטבע למנוע, דת כלים פיסיקה החופשית זכר.
+ מתן החלל מאמרשיחהצפה ב. הספרות אנציקלופדיה אם זכר, על שימושי שימושיים תאולוגיה עזה
+
+
+@## Dark theme
+
+
+Use the `.pt-dark` class to apply dark text colors *and* to cascade the dark theme to descendants.
+This only applies colors to text; you'll have to set a background color yourself. Blueprint's
+dark background color is aliased as `$pt-dark-app-background-color`.
+@### Dark theme
+
+Blueprint provides two UI color themes: light and dark. The light theme is active by default. The
+dark theme can be applied by adding the class `pt-dark` to a container element to theme all nested
+elements.
+
+Once applied, the dark theme will cascade to nested `.pt-*` elements inside a `.pt-dark` container.
+There is no way to nest light-themed elements inside a dark container.
+
+Most elements only support the dark theme when nested inside a `.pt-dark` container because it does
+not make sense to mark individual elements as dark. The dark container is therefore responsible for
+setting a dark background color.
+
+The following elements and components support the `.pt-dark` class directly (i.e, `.pt-app.pt-dark`)
+and can be used as a container for nested dark children:
+
+- `.pt-app`
+- `.pt-card`
+- Overlays: `Dialog`, `Popover`, `Tooltip`, `Toast`
+- `Popover` and `Tooltip` will automatically detect when their trigger is inside a `.pt-dark`
+container and add the same class to themselves.
+
+Rather than illustrating dark components inline, this documentation site provides a site-wide switch
+in the top right corner of the page to enable the dark theme. Try it out as you read the docs.
diff --git a/packages/core/src/docs/variables.md b/packages/core/src/docs/variables.md
new file mode 100644
index 0000000000..52b14b483f
--- /dev/null
+++ b/packages/core/src/docs/variables.md
@@ -0,0 +1,101 @@
+@# Variables
+
+Available for use with Sass and Less.
+
+```css
+@import "path/to/@blueprintjs/core/dist/variables";
+```
+
+The Sass `$` convention is used in this documentation for consistency with the original source code.
+Every variable mentioned below is also available in `variables.less` with an `@` prefix instead of `$`.
+
+@## Font variables
+
+Typically, correct typography styles should be achieved by using the proper HTML tag (`` for
+text, `` for headings, `` for code, etc.). The following variables are provided for the
+rare cases where custom styling is necessary and should be used sparingly:
+
+- `$pt-font-family`
+- `$pt-font-family-monospace`
+- `$pt-font-size`
+- `$pt-font-size-small`
+- `$pt-font-size-large`
+- `$pt-line-height`
+
+See the [Fonts section](#typography.fonts) for more information and usage guidelines.
+
+@## Icon variables
+
+Most icons should be displayed using the `span.pt-icon-*` classes or via modifier classes on
+components like `.pt-button`. In rare cases, you may need direct access to the content
+string that generates each icon in the icon font. Blueprint provides these variables with
+straightforward names (see the [Icons section](#icons) for the full list of identifiers):
+
+- `$pt-icon-style`
+- `$pt-icon-align-left`
+- `$pt-icon-align-center`
+- ...
+
+Variables are also provided for the two icon font families and their pixel sizes:
+
+- `@icons16Family`
+- `@icons20Family`
+- `$pt-icon-size-standard`
+- `$pt-icon-size-large`
+
+@## Grids & dimensions
+
+Sizes of common components. Most sizing variables are based on `$pt-grid-size`, which has
+a value of `10px`. Custom components should adhere to the relevant `height` variable.
+
+- `$pt-grid-size`
+- `$pt-border-radius`
+- `$pt-button-height`
+- `$pt-button-height-large`
+- `$pt-input-height`
+- `$pt-input-height-large`
+- `$pt-navbar-height`
+
+@### Grid system
+
+Blueprint doesn't provide a grid system. In general, you should try to use the `$pt-grid-size`
+variable to generate layout & sizing style rules in your CSS codebase.
+
+In lieu of a full grid system, you should try to use the __CSS flexible box layout model__ (a.k.a.
+"flexbox"). It's quite powerful on its own and allows you to build robust, responsive layouts
+without writing much CSS. Here are some resources for learning flexbox:
+- [MDN guide](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes)
+- [CSS Tricks guide](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
+
+@## Layering
+
+Blueprint provides variables for three z-index layers. This should be enough for most use cases,
+especially if you make correct use of [stacking context][MDN]. [Overlay](#components.overlay)
+components such as dialogs and popovers use these z-index values to configure their stacking
+contexts.
+
+- `$pt-z-index-base`
+- `$pt-z-index-content`
+- `$pt-z-index-overlay`
+
+[MDN]: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context
+
+@## Light theme styles
+
+Use these when you need to build custom UI components that look similar to Blueprint's
+light theme components.
+
+- `$pt-dialog-box-shadow`
+- `$pt-input-box-shadow`
+- `$pt-popover-box-shadow`
+- `$pt-tooltip-box-shadow`
+
+@## Dark theme styles
+
+Use these when you need to build custom UI components that look similar to Blueprint's
+dark theme components.
+
+- `$pt-dark-dialog-box-shadow`
+- `$pt-dark-input-box-shadow`
+- `$pt-dark-popover-box-shadow`
+- `$pt-dark-tooltip-box-shadow`
diff --git a/packages/datetime/src/_dateinput.scss b/packages/datetime/src/_dateinput.scss
index 3abf9deab2..08ef9f963d 100644
--- a/packages/datetime/src/_dateinput.scss
+++ b/packages/datetime/src/_dateinput.scss
@@ -3,44 +3,6 @@
// of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
// and https://github.com/palantir/blueprint/blob/master/PATENTS
-/*
-Date input
-
-The `DateInput` component is an [input group](#components.forms.input-group) with a calendar button
-that shows a [`DatePicker`](#components.datetime.datepicker) in a [`Popover`](#components.popover).
-
-Use the `onChange` function to listen for changes to the selected date. Use `onError` to listen for
-invalid entered dates.
-
-You can control the selected date by setting the `value` prop, or use the component in uncontrolled
-mode and specify an initial date by setting `defaultValue`.
-
-Use this component in forms where the user must enter a date.
-
-@react-example DateInputExample
-
-Weight: 2
-
-Styleguide components.datetime.dateinput
-*/
-
-/*
-JavaScript API
-
-The `DateInput` component is available in the __@blueprintjs/datetime__ package.
-Make sure to review the [general usage docs for date & time components](#components.datetime).
-
-```
-import { DateInput } from "@blueprintjs/datetime";
-
-
-```
-
-@interface IDateInputProps
-
-Styleguide components.datetime.dateinput.js
-*/
-
.pt-dateinput-popover {
padding: 0;
}
diff --git a/packages/datetime/src/_datepicker.scss b/packages/datetime/src/_datepicker.scss
index b5d674967d..fdd29ec941 100644
--- a/packages/datetime/src/_datepicker.scss
+++ b/packages/datetime/src/_datepicker.scss
@@ -8,95 +8,6 @@
@import "../../core/src/common/variables";
@import "../../core/src/components/popover/common";
-/*
-Date picker
-
-A `DatePicker` shows a monthly calendar and allows the user to choose a single date.
-
-`DatePicker`s behave similarly to standard [React form inputs](https://facebook.github.io/react/docs/forms.html).
-
-Use the `onChange` prop to listen for changes to the selected day.
-You can control the selected day by setting the `value` prop, or use the component in uncontrolled
-mode and specify an initial day by setting `defaultValue`.
-
-`DatePicker` uses [Moment.js](http://momentjs.com/) to handle localization. You can use `locale` and
-the `localeUtils` functions to specify a locale. See
-[this file](https://github.com/gpbl/react-day-picker/blob/master/src/addons/MomentLocaleUtils.js)
-for an example of defining `localeUtils` functions using Moment.js.
-
-`DatePicker` is built on top of the [**react-day-picker**](https://github.com/gpbl/react-day-picker) library.
-
-@react-example DatePickerExample
-
-Styleguide components.datetime.datepicker
-*/
-
-/*
-JavaScript API
-
-The `DatePicker` component is available in the __@blueprintjs/datetime__ package.
-Make sure to review the [general usage docs for date & time components](#components.datetime).
-
-Some props are managed by the `DatePicker` component, while others are passed
-to the **react-day-picker** library. These passed props are documented in full
-in the [**react-day-picker** documentation](http://www.gpbl.org/react-day-picker/index.html).
-
-@interface IDatePickerProps
-
-Weight: -1
-
-Styleguide components.datetime.datepicker.js
-*/
-
-/*
-Using modifiers
-
-You can use the `modifiers` prop to conditionally apply styles to days. Modifiers are documented in
-full in the [**react-day-picker** documentation](http://react-day-picker.js.org/Modifiers.html).
-
-The example below creates a `DatePicker` that prevents the user from selecting any Sundays,
-by using the component in controlled mode and with the `modifiers` prop:
-
-```css.scss
-// in CSS
-.pt-datepicker .DayPicker-Day--isSunday {
- // CSS rules to make the day appear disabled
-}
-```
-
-```
-// in TypeScript
-export class DatePickerExample extends React.Component<{}, { selectedDate: Date }> {
- public state = { selectedDate: new Date() };
-
- public render() {
- // name of modifier function, 'isSunday' is the suffix for the CSS class above
- const modifiers = { isSunday };
- return (
- this.handleChange(newDate)}
- value={this.state.selectedDate} />
- );
- }
-
- private handleChange(date: Date) {
- if (!isSunday(date)) {
- this.setState({ selectedDate: date });
- }
- }
-}
-
-function isSunday(date: Date) {
- return date.getDay() === 0;
-}
-```
-
-Weight: 10
-
-Styleguide components.datetime.datepicker.modifiers
-*/
-
$cell-size: $pt-grid-size * 3 !default;
$header-height: $pt-grid-size * 4 !default;
$header-margin: ($header-height - $pt-input-height) / 2 !default;
diff --git a/packages/datetime/src/_daterangepicker.scss b/packages/datetime/src/_daterangepicker.scss
index ac4a2195c6..7144bf5cfd 100644
--- a/packages/datetime/src/_daterangepicker.scss
+++ b/packages/datetime/src/_daterangepicker.scss
@@ -5,50 +5,6 @@
@import "../../core/src/common/variables";
-/*
-Date range picker
-
-A `DateRangePicker` shows two sequential month calendars and lets the user select a single range of
-days.
-
-Use the `onChange` prop to listen for changes to the set date range. You can control the selected
-date range by setting the `value` prop, or use the component in uncontrolled mode and specify an
-initial date range by setting `defaultValue`.
-
-`DateRangePicker` uses the `DateRange` type across its API.
-This is an alias for the tuple type `[Date, Date]`.
-Semantically:
-* `[null, null]` represents an empty selection
-* `[someDate, null]` represents a date range where a single day endpoint is known.
-* `[someDate, someOtherDate]` represents a full date range where both endpoints known.
-
-@react-example DateRangePickerExample
-
-Styleguide components.datetime.daterangepicker
-*/
-
-/*
-JavaScript API
-
-The `DateRangePicker` component is available in the __@blueprintjs/datetime__ package.
-Make sure to review the [general usage docs for date & time components](#components.datetime).
-
-```
-import { DateRangePicker } from "@blueprintjs/datetime";
-
-
-```
-
-@interface IDateRangePickerProps
-
-Weight: -1
-
-Styleguide components.datetime.daterangepicker.js
-*/
-
// react-day-picker does not conform to our naming scheme
// stylelint-disable selector-class-pattern
@@ -92,8 +48,8 @@ Styleguide components.datetime.daterangepicker.js
.pt-menu.pt-daterangepicker-shortcuts {
display: inline-block;
- margin-top: -5px;
- margin-left: -5px;
+ margin-top: -($pt-grid-size / 2);
+ margin-left: -($pt-grid-size / 2);
min-width: $pt-grid-size * 15;
padding-top: 0;
padding-right: $pt-grid-size * 0.5;
diff --git a/packages/datetime/src/_datetimepicker.scss b/packages/datetime/src/_datetimepicker.scss
index bc3f35c193..071a4f2c22 100644
--- a/packages/datetime/src/_datetimepicker.scss
+++ b/packages/datetime/src/_datetimepicker.scss
@@ -5,44 +5,6 @@
@import "../../core/src/common/variables";
-/*
-Date time picker
-
-A combined component consisting of a [`DatePicker`](#components.datetime.datepicker)
-and a [`TimePicker`](#components.datetime.timepicker).
-
-Use the `onChange` prop to listen for changes to the selected date and time. You can control the
-selected date and time by setting the `value` prop, or use the component in uncontrolled
-mode and specify an initial day by setting `defaultValue`. (If `defaultValue` is not set,
-the current date and time is used as the default.)
-
-You can pass props to the inner `DatePicker` and `TimePicker` components using
-`datePickerProps` and `timePickerProps`, respectively.
-
-@react-example DateTimePickerExample
-
-Weight: 1
-
-Styleguide components.datetime.datetimepicker
-*/
-
-/*
-JavaScript API
-
-The `DateTimePicker` component is available in the __@blueprintjs/datetime__ package.
-Make sure to review the [general usage docs for date & time components](#components.datetime).
-
-```
-import { DateTimePicker } from "@blueprintjs/datetime";
-
-
-```
-
-@interface IDateTimePickerProps
-
-Styleguide components.datetime.datetimepicker.js
-*/
-
.pt-datetimepicker {
border-radius: $pt-border-radius;
background-color: $white;
diff --git a/packages/datetime/src/_timepicker.scss b/packages/datetime/src/_timepicker.scss
index 7a82d7ed5b..132e2085d2 100644
--- a/packages/datetime/src/_timepicker.scss
+++ b/packages/datetime/src/_timepicker.scss
@@ -6,40 +6,6 @@
@import "../../core/src/common/variables";
@import "../../core/src/components/forms/common";
-/*
-Time picker
-
-A `TimePicker` allows the user to specify a time.
-
-`TimePicker`s behave similarly to standard [React form inputs](https://facebook.github.io/react/docs/forms.html).
-
-Use the `onChange` prop to listen for changes to the set time. You can control the selected time by
-setting the `value` prop, or use the component in uncontrolled mode and specify an initial time by
-setting `defaultValue`.
-
-`TimePicker` has no direct localization support. You should handle localization directly in your
-application if needed.
-
-`TimePicker` uses `Date` objects across its API but ignores their year, month, and day fields.
-
-@react-example TimePickerExample
-
-Styleguide components.datetime.timepicker
-*/
-
-/*
-JavaScript API
-
-The `TimePicker` component is available in the __@blueprintjs/datetime__ package.
-Make sure to review the [general usage docs for date & time components](#components.datetime).
-
-@interface ITimePickerProps
-
-Weight: -1
-
-Styleguide components.datetime.timepicker.js
-*/
-
$timepicker-input-row-height: $pt-grid-size * 3 !default;
// subtract two because of inset shadow
$timepicker-input-row-inner-height: $timepicker-input-row-height - 2 !default;
diff --git a/packages/datetime/src/dateinput.md b/packages/datetime/src/dateinput.md
new file mode 100644
index 0000000000..bc0b186edd
--- /dev/null
+++ b/packages/datetime/src/dateinput.md
@@ -0,0 +1,27 @@
+@## Date input
+
+The `DateInput` component is an [input group](#components.forms.input-group) with a calendar button
+that shows a [`DatePicker`](#components.datetime.datepicker) in a [`Popover`](#components.popover).
+
+Use the `onChange` function to listen for changes to the selected date. Use `onError` to listen for
+invalid entered dates.
+
+You can control the selected date by setting the `value` prop, or use the component in uncontrolled
+mode and specify an initial date by setting `defaultValue`.
+
+Use this component in forms where the user must enter a date.
+
+@reactExample DateInputExample
+
+@### JavaScript API
+
+The `DateInput` component is available in the __@blueprintjs/datetime__ package.
+Make sure to review the [general usage docs for date & time components](#components.datetime).
+
+```
+import { DateInput } from "@blueprintjs/datetime";
+
+
+```
+
+@interface IDateInputProps
diff --git a/packages/datetime/src/datepicker.md b/packages/datetime/src/datepicker.md
new file mode 100644
index 0000000000..74262b15f7
--- /dev/null
+++ b/packages/datetime/src/datepicker.md
@@ -0,0 +1,72 @@
+@## Date picker
+
+A `DatePicker` shows a monthly calendar and allows the user to choose a single date.
+
+`DatePicker`s behave similarly to standard [React form inputs](https://facebook.github.io/react/docs/forms.html).
+
+Use the `onChange` prop to listen for changes to the selected day.
+You can control the selected day by setting the `value` prop, or use the component in uncontrolled
+mode and specify an initial day by setting `defaultValue`.
+
+`DatePicker` uses [Moment.js](http://momentjs.com/) to handle localization. You can use `locale` and
+the `localeUtils` functions to specify a locale. See
+[this file](https://github.com/gpbl/react-day-picker/blob/master/src/addons/MomentLocaleUtils.js)
+for an example of defining `localeUtils` functions using Moment.js.
+
+`DatePicker` is built on top of the [**react-day-picker**](https://github.com/gpbl/react-day-picker) library.
+
+@reactExample DatePickerExample
+
+@### JavaScript API
+
+The `DatePicker` component is available in the __@blueprintjs/datetime__ package.
+Make sure to review the [general usage docs for date & time components](#components.datetime).
+
+Some props are managed by the `DatePicker` component, while others are passed
+to the **react-day-picker** library. These passed props are documented in full
+in the [**react-day-picker** documentation](http://www.gpbl.org/react-day-picker/index.html).
+
+@interface IDatePickerProps
+
+@### Using modifiers
+
+You can use the `modifiers` prop to conditionally apply styles to days. Modifiers are documented in
+full in the [**react-day-picker** documentation](http://react-day-picker.js.org/Modifiers.html).
+
+The example below creates a `DatePicker` that prevents the user from selecting any Sundays,
+by using the component in controlled mode and with the `modifiers` prop:
+
+```css.scss
+// in CSS
+.pt-datepicker .DayPicker-Day--isSunday {
+ // CSS rules to make the day appear disabled
+}
+```
+
+```tsx
+// in TypeScript
+export class DatePickerExample extends React.Component<{}, { selectedDate: Date }> {
+ public state = { selectedDate: new Date() };
+
+ public render() {
+ // name of modifier function, 'isSunday' is the suffix for the CSS class above
+ const modifiers = { isSunday };
+ return (
+ this.handleChange(newDate)}
+ value={this.state.selectedDate} />
+ );
+ }
+
+ private handleChange(date: Date) {
+ if (!isSunday(date)) {
+ this.setState({ selectedDate: date });
+ }
+ }
+}
+
+function isSunday(date: Date) {
+ return date.getDay() === 0;
+}
+```
diff --git a/packages/datetime/src/daterangepicker.md b/packages/datetime/src/daterangepicker.md
new file mode 100644
index 0000000000..d11a11acd1
--- /dev/null
+++ b/packages/datetime/src/daterangepicker.md
@@ -0,0 +1,33 @@
+@# Date range picker
+
+A `DateRangePicker` shows two sequential month calendars and lets the user select a single range of
+days.
+
+Use the `onChange` prop to listen for changes to the set date range. You can control the selected
+date range by setting the `value` prop, or use the component in uncontrolled mode and specify an
+initial date range by setting `defaultValue`.
+
+`DateRangePicker` uses the `DateRange` type across its API.
+This is an alias for the tuple type `[Date, Date]`.
+Semantically:
+* `[null, null]` represents an empty selection
+* `[someDate, null]` represents a date range where a single day endpoint is known.
+* `[someDate, someOtherDate]` represents a full date range where both endpoints known.
+
+@reactExample DateRangePickerExample
+
+@## JavaScript API
+
+The `DateRangePicker` component is available in the __@blueprintjs/datetime__ package.
+Make sure to review the [general usage docs for date & time components](#components.datetime).
+
+```
+import { DateRangePicker } from "@blueprintjs/datetime";
+
+
+```
+
+@interface IDateRangePickerProps
diff --git a/packages/datetime/src/datetimepicker.md b/packages/datetime/src/datetimepicker.md
new file mode 100644
index 0000000000..d6678edb13
--- /dev/null
+++ b/packages/datetime/src/datetimepicker.md
@@ -0,0 +1,27 @@
+@# Date time picker
+
+A combined component consisting of a [`DatePicker`](#components.datetime.datepicker)
+and a [`TimePicker`](#components.datetime.timepicker).
+
+Use the `onChange` prop to listen for changes to the selected date and time. You can control the
+selected date and time by setting the `value` prop, or use the component in uncontrolled
+mode and specify an initial day by setting `defaultValue`. (If `defaultValue` is not set,
+the current date and time is used as the default.)
+
+You can pass props to the inner `DatePicker` and `TimePicker` components using
+`datePickerProps` and `timePickerProps`, respectively.
+
+@reactExample DateTimePickerExample
+
+@## JavaScript API
+
+The `DateTimePicker` component is available in the __@blueprintjs/datetime__ package.
+Make sure to review the [general usage docs for date & time components](#components.datetime).
+
+```
+import { DateTimePicker } from "@blueprintjs/datetime";
+
+
+```
+
+@interface IDateTimePickerProps
diff --git a/packages/datetime/src/timepicker.md b/packages/datetime/src/timepicker.md
new file mode 100644
index 0000000000..f4795854e0
--- /dev/null
+++ b/packages/datetime/src/timepicker.md
@@ -0,0 +1,23 @@
+@# Time picker
+
+A `TimePicker` allows the user to specify a time.
+
+`TimePicker`s behave similarly to standard [React form inputs](https://facebook.github.io/react/docs/forms.html).
+
+Use the `onChange` prop to listen for changes to the set time. You can control the selected time by
+setting the `value` prop, or use the component in uncontrolled mode and specify an initial time by
+setting `defaultValue`.
+
+`TimePicker` has no direct localization support. You should handle localization directly in your
+application if needed.
+
+`TimePicker` uses `Date` objects across its API but ignores their year, month, and day fields.
+
+@reactExample TimePickerExample
+
+@## JavaScript API
+
+The `TimePicker` component is available in the __@blueprintjs/datetime__ package.
+Make sure to review the [general usage docs for date & time components](#components.datetime).
+
+@interface ITimePickerProps
diff --git a/packages/docs/src/styleguide.md b/packages/docs/src/styleguide.md
index b7f77b8987..99df88f38a 100644
--- a/packages/docs/src/styleguide.md
+++ b/packages/docs/src/styleguide.md
@@ -8,7 +8,7 @@ Use the [__blueprintjs__ tag on Stack Overflow](http://stackoverflow.com/questio
for support requests.
-## Usage
+@## Usage
Blueprint is available as a collection of NPM packages under the `@blueprintjs` scope.
@@ -23,7 +23,7 @@ Don't forget to include the main CSS stylesheet too!
**Review the [general usage docs](#components.usage) for more complete installation instructions.**
-### Beyond core styles
+@### Beyond core styles
Blueprint is a collection of packages of styles and JavaScript components—the full package
list appears in this site's header under _Releases_. They can be installed from the NPM registry
@@ -36,7 +36,7 @@ APIs you have access to.
Most packages consist of JS and CSS resources, so please make sure you're including both in your application.
-### TypeScript
+@### TypeScript
Blueprint is written in [TypeScript](https://www.typescriptlang.org/), a statically typed superset
of JavaScript that compiles to plain JavaScript. All the code samples throughout this site and
@@ -69,7 +69,7 @@ with the syntax is suggested so you can follow our examples
([the handbook](https://www.typescriptlang.org/docs/handbook/basic-types.html) has good documentation
for getting started). Simply ignoring the type annotations in your head will produce valid ES2015 code.
-### Browser support
+@### Browser support
**Blueprint supports Chrome, Firefox, Safari, IE 11, and Microsoft Edge.**
@@ -77,7 +77,7 @@ You may experience degraded visuals in IE.
IE 10 and below are unsupported due to their lack of support for CSS Flexbox Layout.
These browsers were deprecated by Microsoft (end of support) in [January 2016](https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support).
-## Development & contributions
+@## Development & contributions
Most dev-related information is on [our GitHub wiki](https://github.com/palantir/blueprint/wiki),
including our [coding guidelines](https://github.com/palantir/blueprint/wiki/Coding-guidelines)
diff --git a/packages/table/src/_docs.scss b/packages/table/src/docs.md
similarity index 75%
rename from packages/table/src/_docs.scss
rename to packages/table/src/docs.md
index afe41af4ff..5d8089f61a 100644
--- a/packages/table/src/_docs.scss
+++ b/packages/table/src/docs.md
@@ -1,13 +1,4 @@
-// Copyright 2016 Palantir Technologies, Inc. All rights reserved.
-// Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
-// of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
-// and https://github.com/palantir/blueprint/blob/master/PATENTS
-
-// NOTE: This file is not included in the dist for this library. It is only used
-// for documentation.
-
-/*
-Table (React)
+@# Table (React)
A highly interactive table React component.
@@ -25,23 +16,13 @@ A highly interactive table React component.
* Editable headers and cells
* Integrated header and context menus
-Styleguide components.table-js
-*/
-
-/*
-Installation
+@# Installation
```sh
npm install --save @blueprintjs/core @blueprintjs/table
```
-Weight: 0
-
-Styleguide components.table-js.usage
-*/
-
-/*
-Making a table
+@# Making a table
To create a table, you must define the rows and columns. Add children to the `Table` to create columns,
and change the `numRows` prop on the `Table` to set the number of rows.
@@ -72,15 +53,9 @@ const renderCell = (rowIndex: number) => {