-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add marketing buttons to primer-marketing-buttons #337
Changes from 15 commits
41f157b
a6db97c
2e039ad
bfeb14a
ece1533
d16903a
234e3b2
ca26cfc
1078145
da1c1c4
0383073
a1918c9
69685d9
f1681f3
22c7f75
fc30322
1c81f3c
cea6e67
60a8d27
171e0b6
43e12e8
7f9fc05
73b5205
6c4d49d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -88,13 +88,6 @@ | |
line-height: 20px; | ||
} | ||
|
||
// Large button adds more padding around text. Use font-size utils to increase font-size.. e.g, <p class="text-gamma"><button class="btn btn-large btn-primary" type="button">Big green button</button></p> | ||
.btn-large { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is used in some locations outside of There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. im moving |
||
padding: 0.75em 1.25em; | ||
font-size: inherit; | ||
border-radius: 6px; | ||
} | ||
|
||
// Hidden text button | ||
// | ||
// Use `.hidden-text-expander` to indicate and expand hidden text. | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -41,6 +41,7 @@ | |
"primer-labels": "1.5.1", | ||
"primer-layout": "1.4.1", | ||
"primer-markdown": "3.7.1", | ||
"primer-marketing-buttons": "0.0.1", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. testing There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. testing testing There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note to change this to 1.0.0 after merging into v10 branch and run bump script. cc @jonrohan |
||
"primer-marketing-support": "1.3.1", | ||
"primer-marketing-type": "1.4.1", | ||
"primer-marketing-utilities": "1.4.1", | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
*.yml | ||
.github |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
The MIT License (MIT) | ||
|
||
Copyright (c) 2017 GitHub Inc. | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
# Primer Marketing CSS Buttons | ||
|
||
[![npm version](http://img.shields.io/npm/v/primer-marketing-buttons.svg)](https://www.npmjs.org/package/primer-marketing-buttons) | ||
[![Build Status](https://travis-ci.org/primer/primer-css.svg?branch=master)](https://travis-ci.org/primer/primer-css) | ||
|
||
> Buttons are used for actions, like in forms, while textual hyperlinks are used for destinations, or moving from one page to another. | ||
|
||
This repository is a module of the full [primer-css][primer] repository. | ||
|
||
## Documentation | ||
|
||
<!-- %docs | ||
title: Marketing Buttons | ||
status: New Release | ||
--> | ||
|
||
The buttons on our marketing pages are based on Primer's core with the addition of more color options, color outline buttons, a transparent button, and larger button sizes. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This could be more concise and it's good to link to docs within the style guide. Suggest changing to:
|
||
|
||
|
||
## Color | ||
|
||
The `btn` has been extended with the marketing color palette: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggest changing to more descriptive sentence:
😬 |
||
|
||
```html | ||
|
||
<button class="btn btn-orange" type="button">Button button</button> | ||
<a class="btn btn-purple" href="#url" role="button">Link button</a> | ||
<button class="btn btn-blurple" type="button">Button button</button> | ||
|
||
``` | ||
|
||
## Outline buttons | ||
|
||
The `btn-outline` has also been extended with the marketing color palette: | ||
|
||
```html | ||
|
||
<button class="btn btn-outline-orange" type="button">Button button</button> | ||
<a class="btn btn-outline-purple" href="#url" role="button">Link button</a> | ||
<button class="btn btn-outline-green" type="button">Button button</button> | ||
<div class="bg-gray-dark p-4 mt-4"> | ||
<button class="btn btn-transparent" type="button"> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
Button button | ||
<span class="Counter">12</span> | ||
</button> | ||
</div> | ||
|
||
``` | ||
|
||
## Additional sizing | ||
There are cases where you might want to increase the size of a button, for example when putting a main CTA inside of a jumbotron or major page callout. The `btn-large` class does the following to make a button more prominent: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think the intro paragraph can be more concise, and I don't think we need to call out the description in a numbered list or get into exact values, suggest changing to something like the following:
Side note: As someone less familiar with marketing styles, I had no idea what a There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've changed the language in this section of the docs to "This is useful for prominent calls to action in hero sections." Related, this section of the docs pertaining to |
||
|
||
1. Adds extra additional padding in `ems` so that the padding scales proportionately with the `font-size` | ||
2. Increases the border radius to 6px | ||
|
||
It can optionally be used in combination with a font-size utility (like `f3`) on the parent to increase the font-size. | ||
|
||
```html | ||
|
||
<p class="f3"> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Show how the default |
||
<a class="btn btn-large btn-purple" href="#url" role="button">Large link button</a> | ||
<button class="btn btn-large btn-outline-blue" type="button">Large button button</button> | ||
</p> | ||
|
||
``` | ||
|
||
<!-- %enddocs --> | ||
|
||
## Install | ||
|
||
This repository is distributed with [npm][npm]. After [installing npm][install-npm], you can install `primer-marketing-buttons` with this command. | ||
|
||
``` | ||
$ npm install --save primer-marketing-buttons | ||
``` | ||
|
||
## Usage | ||
|
||
The source files included are written in [Sass][sass] (`scss`) You can simply point your sass `include-path` at your `node_modules` directory and import it like this. | ||
|
||
```scss | ||
@import "primer-marketing-buttons/index.scss"; | ||
``` | ||
|
||
You can also import specific portions of the module by importing those partials from the `/lib/` folder. _Make sure you import any requirements along with the modules._ | ||
|
||
## Build | ||
|
||
For a compiled **css** version of this module, a npm script is included that will output a css version to `build/build.css` | ||
|
||
``` | ||
$ npm run build | ||
``` | ||
|
||
## License | ||
|
||
MIT © [GitHub](https://github.com/) | ||
|
||
[primer]: https://github.com/primer/primer | ||
[primer-support]: https://github.com/primer/primer-support | ||
[support]: https://github.com/primer/primer-support | ||
[docs]: http://primercss.io/ | ||
[npm]: https://www.npmjs.com/ | ||
[install-npm]: https://docs.npmjs.com/getting-started/installing-node | ||
[sass]: http://sass-lang.com/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
// support files | ||
@import "primer-support/index.scss"; | ||
@import "./lib/button.scss"; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
.btn-orange { @include btn-solid($white, lighten($orange-500, 7.5%), darken($orange-500, 7.5%)); } | ||
.btn-blurple { @include btn-solid($white, mix($blue-400, $purple-400, 35%), mix($blue-600, $purple-600, 35%)); } | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd like to give this a legit class name (such as indigo), and I'd like to discuss why we have this exception regarding colors. I think we should very rarely use a color in our UI for a single use case that is not used in any other way on our site. Do we really need this extra color? Could it be a shade variation of existing colors, or use another existing button color, such as There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These are good questions @broccolini. It looks like theyre only used on the business pages here: https://github.com/business and on At this point im gonna leave it out of this PR. I can put it back in if we think we should do it. |
||
|
||
.btn-outline-purple { @include btn-outline($purple); } | ||
.btn-outline-orange { @include btn-outline($orange); } | ||
.btn-outline-green { @include btn-outline($green); } | ||
|
||
@mixin btn-transparent-active { | ||
color: $gray-800; | ||
background-color: $white; | ||
background-image: none; | ||
border-color: $white; | ||
} | ||
|
||
.btn-transparent { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This doesn't seem to be used anywhere in the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is sometimes used on the ads we have on the homepage below the hero on github.com. I personally have also used it here on the hero and circular callouts https://partner.github.com/ |
||
color: $white; | ||
background-color: transparent; | ||
background-image: none; | ||
border: 1px solid $white-fade-50; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Use border variables: |
||
|
||
&:hover, | ||
&:active { | ||
@include btn-transparent-active; | ||
} | ||
} | ||
|
||
// Large button adds more padding around text. Use font-size utils to increase font-size.. e.g, <p class="text-gamma"><button class="btn btn-large btn-primary" type="button">Big green button</button></p> | ||
.btn-large { | ||
padding: 0.75em 1.25em; | ||
font-size: inherit; | ||
border-radius: 6px; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
{ | ||
"version": "0.0.1", | ||
"name": "primer-marketing-buttons", | ||
"description": "Buttons for marketing websites at GitHub", | ||
"homepage": "http://primercss.io/", | ||
"author": "GitHub, Inc.", | ||
"license": "MIT", | ||
"style": "build/build.css", | ||
"main": "build/index.js", | ||
"primer": { | ||
"category": "marketing", | ||
"module_type": "components" | ||
}, | ||
"files": [ | ||
"index.scss", | ||
"lib", | ||
"build" | ||
], | ||
"repository": "https://github.com/primer/primer-css/tree/master/modules/primer-marketing-buttons", | ||
"bugs": { | ||
"url": "https://github.com/primer/primer-css/issues" | ||
}, | ||
"scripts": { | ||
"test-docs": "../../script/test-docs", | ||
"build": "../../script/npm-run primer-module-build index.scss", | ||
"prepare": "npm run build", | ||
"lint": "../../script/lint-scss", | ||
"test": "../../script/npm-run-all build lint test-docs" | ||
}, | ||
"dependencies": { | ||
"primer-support": "4.4.1" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These buttons are designed to be used with There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I just had a flash back to trying to setup peer dependencies with Lerna from the original monorepo set up and it wasn't pretty. @gladwearefriends leave that to us, maybe it's all fine now since there's been lots of changes but I'd rather us deal with problems if they come up than you! We can do this before merging in tomorrow. |
||
}, | ||
"keywords": [ | ||
"css", | ||
"github", | ||
"primer", | ||
"primercss", | ||
"style", | ||
"buttons" | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
import React from 'react' | ||
import { storiesOf } from '@storybook/react' | ||
|
||
storiesOf('Marketing buttons', module) | ||
.add('Button colors', () => ( | ||
<div className='p-4'> | ||
<button className="btn btn-orange mr-6" type="button">Button button</button> | ||
<a className="btn btn-purple mr-6" href="#url" role="button">Link button</a> | ||
<button className="btn btn-blurple mr-6" type="button">Button button</button> | ||
</div> | ||
)) | ||
.add('btn-outline', () => ( | ||
<div className='p-4'> | ||
<button className="btn btn-outline-orange mr-6" type="button">Button button</button> | ||
<a className="btn btn-outline-purple mr-6" href="#url" role="button">Link button</a> | ||
<button className="btn btn-outline-green mr-6" type="button">Button button</button> | ||
<div className="bg-gray-dark p-4 mt-4 mr-6"> | ||
<button className="btn btn-transparent mr-6" type="button">Button button</button> | ||
</div> | ||
</div> | ||
)) | ||
.add('btn-large', () => ( | ||
<div className='f3 p-4'> | ||
<a className="btn btn-large btn-purple mr-6" href="#url" role="button">Large link button</a> | ||
<button className="btn btn-large btn-outline-blue" type="button">Large button button</button> | ||
</div> | ||
)) |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,6 +16,7 @@ | |
|
||
// marketing specific css modules | ||
@import "primer-marketing-type/index.scss"; | ||
@import "primer-marketing-buttons/index.scss"; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In order for this to work, we'll also need to add this to the |
||
@import "primer-page-headers/index.scss"; | ||
@import "primer-page-sections/index.scss"; | ||
@import "primer-tables/index.scss"; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're going to get mad merge conflicts in the v10 branch if everyone updates the changelog (hadn't thought of this before), can you remove the changes here and just add a comment to your pr with "To be included in the Changelog" so we can copy the updates over.