jobs-ui 0.1.0.0 → 0.1.0.1
raw patch · 7 files changed
+1086/−15 lines, 7 filesbinary-addedPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Web.JobsUi.Actions: createJob :: JobInfo info -> Action () ()
- Web.JobsUi.Actions: formViewer :: Text -> Html -> Maybe Html -> Action v ()
- Web.JobsUi.Actions: jobsMenu :: Set Text -> Action () ()
- Web.JobsUi.Actions: myError :: MonadIO a => Status -> ActionCtxT () a ()
- Web.JobsUi.Actions: showHistory :: Action () ()
- Web.JobsUi.Actions: showJob :: JobId -> Action () ()
- Web.JobsUi.Forms: EditJob :: JobInfo info -> [(Text, Text)] -> EditJob
- Web.JobsUi.Forms: [ejJobInfo] :: EditJob -> JobInfo info
- Web.JobsUi.Forms: [ejPayload] :: EditJob -> [(Text, Text)]
- Web.JobsUi.Forms: createPayload :: JobInfo info -> Form Html (Action' ()) [(Text, Text)]
- Web.JobsUi.Forms: data EditJob
- Web.JobsUi.Forms: editJobForm :: Either (JobInfo info) EditJob -> Form Html (Action' ()) EditJob
- Web.JobsUi.Forms: editJobFormView :: JobInfo info -> View Html -> Html
- Web.JobsUi.Forms: jobToEditJob :: Job -> EditJob
- Web.JobsUi.Forms: secureForm :: Text -> (View Html -> Html) -> View Html -> Action v Html
- Web.JobsUi.Forms: trim :: Text -> Text
- Web.JobsUi.Html: displayJob :: JobStatus -> Job -> Html
- Web.JobsUi.Html: displayJobInList :: JobStatus -> Job -> Html
- Web.JobsUi.Html: displayJobsList :: Jobs -> Html
- Web.JobsUi.Html: displayParam :: (Param, Text) -> Html
- Web.JobsUi.Html: myFormatTime :: ZonedTime -> Html
- Web.JobsUi.Html: ppJobStatus :: Job -> JobStatus -> Text
- Web.JobsUi.Html: template :: Text -> Html -> Html
- Web.JobsUi.Html: title :: Text
- Web.JobsUi.Internal.Types: Done :: JobStatus
- Web.JobsUi.Internal.Types: Error :: v -> Result v a
- Web.JobsUi.Internal.Types: Job :: JobId -> ZonedTime -> Maybe ZonedTime -> Maybe ZonedTime -> Maybe (Result Text Text) -> Maybe ThreadId -> info -> JobInfo info -> Job
- Web.JobsUi.Internal.Types: JobId :: Int -> JobId
- Web.JobsUi.Internal.Types: JobInfo :: Text -> [Param] -> (a -> [Text]) -> ([(Text, Text)] -> IO a) -> (a -> IO Text) -> (a -> Result Text Text -> IO ()) -> JobInfo a
- Web.JobsUi.Internal.Types: JobType :: JobInfo a -> JobType
- Web.JobsUi.Internal.Types: Jobs :: Seq a -> Maybe a -> [a] -> JobsDS a
- Web.JobsUi.Internal.Types: Param :: Text -> ParamInputType -> (Text -> IO (Result Text Text)) -> Param
- Web.JobsUi.Internal.Types: Running :: JobStatus
- Web.JobsUi.Internal.Types: ServerState :: TVar Jobs -> TVar Int -> ServerState
- Web.JobsUi.Internal.Types: Success :: a -> Result v a
- Web.JobsUi.Internal.Types: TextInput :: ParamInputType
- Web.JobsUi.Internal.Types: TextOptions :: IO [Text] -> ParamInputType
- Web.JobsUi.Internal.Types: Waiting :: JobStatus
- Web.JobsUi.Internal.Types: [counterVar] :: ServerState -> TVar Int
- Web.JobsUi.Internal.Types: [done] :: JobsDS a -> [a]
- Web.JobsUi.Internal.Types: [getJobId] :: JobId -> Int
- Web.JobsUi.Internal.Types: [getJobInfo] :: JobType -> JobInfo a
- Web.JobsUi.Internal.Types: [jiConstructor] :: JobInfo a -> [(Text, Text)] -> IO a
- Web.JobsUi.Internal.Types: [jiExec] :: JobInfo a -> a -> IO Text
- Web.JobsUi.Internal.Types: [jiInputs] :: JobInfo a -> [Param]
- Web.JobsUi.Internal.Types: [jiNotify] :: JobInfo a -> a -> Result Text Text -> IO ()
- Web.JobsUi.Internal.Types: [jiParams] :: JobInfo a -> a -> [Text]
- Web.JobsUi.Internal.Types: [jiType] :: JobInfo a -> Text
- Web.JobsUi.Internal.Types: [jobFinished] :: Job -> Maybe (Result Text Text)
- Web.JobsUi.Internal.Types: [jobId] :: Job -> JobId
- Web.JobsUi.Internal.Types: [jobInfo] :: Job -> JobInfo info
- Web.JobsUi.Internal.Types: [jobPayload] :: Job -> info
- Web.JobsUi.Internal.Types: [jobThread] :: Job -> Maybe ThreadId
- Web.JobsUi.Internal.Types: [jobTimeEnded] :: Job -> Maybe ZonedTime
- Web.JobsUi.Internal.Types: [jobTimeQueued] :: Job -> ZonedTime
- Web.JobsUi.Internal.Types: [jobTimeStarted] :: Job -> Maybe ZonedTime
- Web.JobsUi.Internal.Types: [myjobsVar] :: ServerState -> TVar Jobs
- Web.JobsUi.Internal.Types: [paramDesc] :: Param -> Text
- Web.JobsUi.Internal.Types: [paramInputType] :: Param -> ParamInputType
- Web.JobsUi.Internal.Types: [paramValidation] :: Param -> Text -> IO (Result Text Text)
- Web.JobsUi.Internal.Types: [running] :: JobsDS a -> Maybe a
- Web.JobsUi.Internal.Types: [waiting] :: JobsDS a -> Seq a
- Web.JobsUi.Internal.Types: data Job
- Web.JobsUi.Internal.Types: data JobInfo a
- Web.JobsUi.Internal.Types: data JobStatus
- Web.JobsUi.Internal.Types: data JobType
- Web.JobsUi.Internal.Types: data JobsDS a
- Web.JobsUi.Internal.Types: data Param
- Web.JobsUi.Internal.Types: data ParamInputType
- Web.JobsUi.Internal.Types: data Result v a
- Web.JobsUi.Internal.Types: data ServerState
- Web.JobsUi.Internal.Types: getJobParams :: Job -> [Text]
- Web.JobsUi.Internal.Types: getJobType :: Job -> Text
- Web.JobsUi.Internal.Types: instance Data.Foldable.Foldable Web.JobsUi.Internal.Types.JobsDS
- Web.JobsUi.Internal.Types: instance Data.Traversable.Traversable Web.JobsUi.Internal.Types.JobsDS
- Web.JobsUi.Internal.Types: instance GHC.Base.Functor Web.JobsUi.Internal.Types.JobsDS
- Web.JobsUi.Internal.Types: instance GHC.Classes.Eq Web.JobsUi.Internal.Types.JobId
- Web.JobsUi.Internal.Types: instance GHC.Classes.Eq Web.JobsUi.Internal.Types.JobStatus
- Web.JobsUi.Internal.Types: instance GHC.Classes.Ord Web.JobsUi.Internal.Types.JobId
- Web.JobsUi.Internal.Types: instance GHC.Show.Show Web.JobsUi.Internal.Types.JobId
- Web.JobsUi.Internal.Types: instance GHC.Show.Show Web.JobsUi.Internal.Types.JobStatus
- Web.JobsUi.Internal.Types: newtype JobId
- Web.JobsUi.Internal.Types: noJobs :: Jobs
- Web.JobsUi.Internal.Types: type Action ctx a = SpockActionCtx ctx () () ServerState a
- Web.JobsUi.Internal.Types: type Action' ctx = SpockActionCtx ctx () () ServerState
- Web.JobsUi.Internal.Types: type Html = Html ()
- Web.JobsUi.Internal.Types: type Jobs = JobsDS Job
- Web.JobsUi.Run: instance GHC.Exception.Type.Exception Web.JobsUi.Run.MyException
- Web.JobsUi.Run: instance GHC.Show.Show Web.JobsUi.Run.MyException
- Web.JobsUi.Run: run :: [JobType] -> IO ()
- Web.JobsUi.Utils: lookupIO :: Show a => Eq a => a -> [(a, b)] -> IO b
Files
- README.md +0/−4
- jobs-ui.cabal +10/−11
- stack.yaml +21/−0
- static/css/jobs-ui.css +29/−0
- static/css/normalize.css +427/−0
- static/css/skeleton.css +599/−0
- view.png binary
README.md view
@@ -4,10 +4,6 @@  -## Deps--This package uses hpack and stack.- ## Usage [See the example project](https://gitlab.com/gilmi/jobs-ui/tree/master/example/Main.hs).
jobs-ui.cabal view
@@ -1,13 +1,7 @@ cabal-version: 1.18 --- This file has been generated from package.yaml by hpack version 0.31.2.------ see: https://github.com/sol/hpack------ hash: cc1d4563ac0034c1a87c5a01bb68a81add04e8d100bc310c416a33984f217884- name: jobs-ui-version: 0.1.0.0+version: 0.1.0.1 synopsis: A library for creating a jobs management website running custom jobs. description: A library for creating a jobs management website running custom jobs by defining jobs in Haskell. category: Web@@ -17,12 +11,17 @@ license: Apache-2.0 license-file: LICENSE build-type: Simple+ extra-source-files: Makefile+ stack.yaml+ static/css/normalize.css+ static/css/skeleton.css+ static/css/jobs-ui.css extra-doc-files: README.md LICENSE-data-dir: static+ view.png source-repository head type: git@@ -31,15 +30,15 @@ library exposed-modules: Web.JobsUi+ Web.JobsUi.Types+ other-modules:+ Paths_jobs_ui Web.JobsUi.Actions Web.JobsUi.Forms Web.JobsUi.Html Web.JobsUi.Internal.Types Web.JobsUi.Run- Web.JobsUi.Types Web.JobsUi.Utils- other-modules:- Paths_jobs_ui hs-source-dirs: src default-extensions: TypeApplications OverloadedStrings ConstraintKinds DataKinds DeriveFunctor DeriveFoldable DeriveTraversable EmptyDataDecls FlexibleContexts KindSignatures LambdaCase MultiParamTypeClasses MultiWayIf PatternGuards PatternSynonyms RankNTypes RecordWildCards NamedFieldPuns ScopedTypeVariables TupleSections ViewPatterns BangPatterns
+ stack.yaml view
@@ -0,0 +1,21 @@+resolver: lts-13.29++packages:+- '.'++extra-deps:+- Spock-digestive-0.3.0.0+- Spock-lucid-0.4.0.1+- digestive-functors-0.8.4.0+- digestive-functors-lucid-0.0.0.5+- pretty-relative-time-0.1.0.0+- Spock-0.13.0.0+- Spock-core-0.13.0.0+- reroute-0.5.0.0+- stm-containers-0.2.16+- focus-0.1.5.2++flags: {}++extra-package-dbs: []+
+ static/css/jobs-ui.css view
@@ -0,0 +1,29 @@+.jobs-list {+}++.waiting-job {+ color: #8c8585;+}+.running-job {+ color: #058aff;+}+.done-job {+ color: #253a46;+}++.failed-job {+ color: #d90101;+}+.success-job {+ color: #11bf11;+}++.cancel-btn {+ color: white;+ background-color: #b10404;+ float: right;+}++.navigation {+ list-style-type: none;+}
+ static/css/normalize.css view
@@ -0,0 +1,427 @@+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */++/**+ * 1. Set default font family to sans-serif.+ * 2. Prevent iOS text size adjust after orientation change, without disabling+ * user zoom.+ */++html {+ font-family: sans-serif; /* 1 */+ -ms-text-size-adjust: 100%; /* 2 */+ -webkit-text-size-adjust: 100%; /* 2 */+}++/**+ * Remove default margin.+ */++body {+ margin: 0;+}++/* HTML5 display definitions+ ========================================================================== */++/**+ * Correct `block` display not defined for any HTML5 element in IE 8/9.+ * Correct `block` display not defined for `details` or `summary` in IE 10/11+ * and Firefox.+ * Correct `block` display not defined for `main` in IE 11.+ */++article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+main,+menu,+nav,+section,+summary {+ display: block;+}++/**+ * 1. Correct `inline-block` display not defined in IE 8/9.+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.+ */++audio,+canvas,+progress,+video {+ display: inline-block; /* 1 */+ vertical-align: baseline; /* 2 */+}++/**+ * Prevent modern browsers from displaying `audio` without controls.+ * Remove excess height in iOS 5 devices.+ */++audio:not([controls]) {+ display: none;+ height: 0;+}++/**+ * Address `[hidden]` styling not present in IE 8/9/10.+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.+ */++[hidden],+template {+ display: none;+}++/* Links+ ========================================================================== */++/**+ * Remove the gray background color from active links in IE 10.+ */++a {+ background-color: transparent;+}++/**+ * Improve readability when focused and also mouse hovered in all browsers.+ */++a:active,+a:hover {+ outline: 0;+}++/* Text-level semantics+ ========================================================================== */++/**+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.+ */++abbr[title] {+ border-bottom: 1px dotted;+}++/**+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.+ */++b,+strong {+ font-weight: bold;+}++/**+ * Address styling not present in Safari and Chrome.+ */++dfn {+ font-style: italic;+}++/**+ * Address variable `h1` font-size and margin within `section` and `article`+ * contexts in Firefox 4+, Safari, and Chrome.+ */++h1 {+ font-size: 2em;+ margin: 0.67em 0;+}++/**+ * Address styling not present in IE 8/9.+ */++mark {+ background: #ff0;+ color: #000;+}++/**+ * Address inconsistent and variable font size in all browsers.+ */++small {+ font-size: 80%;+}++/**+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.+ */++sub,+sup {+ font-size: 75%;+ line-height: 0;+ position: relative;+ vertical-align: baseline;+}++sup {+ top: -0.5em;+}++sub {+ bottom: -0.25em;+}++/* Embedded content+ ========================================================================== */++/**+ * Remove border when inside `a` element in IE 8/9/10.+ */++img {+ border: 0;+}++/**+ * Correct overflow not hidden in IE 9/10/11.+ */++svg:not(:root) {+ overflow: hidden;+}++/* Grouping content+ ========================================================================== */++/**+ * Address margin not present in IE 8/9 and Safari.+ */++figure {+ margin: 1em 40px;+}++/**+ * Address differences between Firefox and other browsers.+ */++hr {+ -moz-box-sizing: content-box;+ box-sizing: content-box;+ height: 0;+}++/**+ * Contain overflow in all browsers.+ */++pre {+ overflow: auto;+}++/**+ * Address odd `em`-unit font size rendering in all browsers.+ */++code,+kbd,+pre,+samp {+ font-family: monospace, monospace;+ font-size: 1em;+}++/* Forms+ ========================================================================== */++/**+ * Known limitation: by default, Chrome and Safari on OS X allow very limited+ * styling of `select`, unless a `border` property is set.+ */++/**+ * 1. Correct color not being inherited.+ * Known issue: affects color of disabled elements.+ * 2. Correct font properties not being inherited.+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.+ */++button,+input,+optgroup,+select,+textarea {+ color: inherit; /* 1 */+ font: inherit; /* 2 */+ margin: 0; /* 3 */+}++/**+ * Address `overflow` set to `hidden` in IE 8/9/10/11.+ */++button {+ overflow: visible;+}++/**+ * Address inconsistent `text-transform` inheritance for `button` and `select`.+ * All other form control elements do not inherit `text-transform` values.+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.+ * Correct `select` style inheritance in Firefox.+ */++button,+select {+ text-transform: none;+}++/**+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`+ * and `video` controls.+ * 2. Correct inability to style clickable `input` types in iOS.+ * 3. Improve usability and consistency of cursor style between image-type+ * `input` and others.+ */++button,+html input[type="button"], /* 1 */+input[type="reset"],+input[type="submit"] {+ -webkit-appearance: button; /* 2 */+ cursor: pointer; /* 3 */+}++/**+ * Re-set default cursor for disabled elements.+ */++button[disabled],+html input[disabled] {+ cursor: default;+}++/**+ * Remove inner padding and border in Firefox 4+.+ */++button::-moz-focus-inner,+input::-moz-focus-inner {+ border: 0;+ padding: 0;+}++/**+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in+ * the UA stylesheet.+ */++input {+ line-height: normal;+}++/**+ * It's recommended that you don't attempt to style these elements.+ * Firefox's implementation doesn't respect box-sizing, padding, or width.+ *+ * 1. Address box sizing set to `content-box` in IE 8/9/10.+ * 2. Remove excess padding in IE 8/9/10.+ */++input[type="checkbox"],+input[type="radio"] {+ box-sizing: border-box; /* 1 */+ padding: 0; /* 2 */+}++/**+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain+ * `font-size` values of the `input`, it causes the cursor style of the+ * decrement button to change from `default` to `text`.+ */++input[type="number"]::-webkit-inner-spin-button,+input[type="number"]::-webkit-outer-spin-button {+ height: auto;+}++/**+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome+ * (include `-moz` to future-proof).+ */++input[type="search"] {+ -webkit-appearance: textfield; /* 1 */+ -moz-box-sizing: content-box;+ -webkit-box-sizing: content-box; /* 2 */+ box-sizing: content-box;+}++/**+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.+ * Safari (but not Chrome) clips the cancel button when the search input has+ * padding (and `textfield` appearance).+ */++input[type="search"]::-webkit-search-cancel-button,+input[type="search"]::-webkit-search-decoration {+ -webkit-appearance: none;+}++/**+ * Define consistent border, margin, and padding.+ */++fieldset {+ border: 1px solid #c0c0c0;+ margin: 0 2px;+ padding: 0.35em 0.625em 0.75em;+}++/**+ * 1. Correct `color` not being inherited in IE 8/9/10/11.+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.+ */++legend {+ border: 0; /* 1 */+ padding: 0; /* 2 */+}++/**+ * Remove default vertical scrollbar in IE 8/9/10/11.+ */++textarea {+ overflow: auto;+}++/**+ * Don't inherit the `font-weight` (applied by a rule above).+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.+ */++optgroup {+ font-weight: bold;+}++/* Tables+ ========================================================================== */++/**+ * Remove most spacing between table cells.+ */++table {+ border-collapse: collapse;+ border-spacing: 0;+}++td,+th {+ padding: 0;+}
+ static/css/skeleton.css view
@@ -0,0 +1,599 @@+/*+* Skeleton V2.0.4+* Copyright 2014, Dave Gamache+* www.getskeleton.com+* Free to use under the MIT license.+* http://www.opensource.org/licenses/mit-license.php+* 12/29/2014+*/+++/* Table of contents+––––––––––––––––––––––––––––––––––––––––––––––––––+- Grid+- Base Styles+- Typography+- Links+- Buttons+- Forms+- Lists+- Code+- Tables+- Spacing+- Utilities+- Clearing+- Media Queries+*/+++/* Grid+–––––––––––––––––––––––––––––––––––––––––––––––––– */+.container {+ position: relative;+ width: 100%;+ max-width: 1060px;+ margin: 0 auto;+ padding: 0 20px;+ box-sizing: border-box; }+.column,+.columns {+ width: 100%;+ float: left;+ box-sizing: border-box; }++/* For devices larger than 400px */+@media (min-width: 400px) {+ .container {+ width: 85%;+ padding: 0; }+}++/* For devices larger than 550px */+@media (min-width: 550px) {+ .container {+ width: 80%; }+ .column,+ .columns {+ margin-left: 4%; }+ .column:first-child,+ .columns:first-child {+ margin-left: 0; }++ .one.column,+ .one.columns { width: 4.66666666667%; }+ .two.columns { width: 13.3333333333%; }+ .three.columns { width: 22%; }+ .four.columns { width: 30.6666666667%; }+ .five.columns { width: 39.3333333333%; }+ .six.columns { width: 48%; }+ .seven.columns { width: 56.6666666667%; }+ .eight.columns { width: 65.3333333333%; }+ .nine.columns { width: 74.0%; }+ .ten.columns { width: 82.6666666667%; }+ .eleven.columns { width: 91.3333333333%; }+ .twelve.columns { width: 100%; margin-left: 0; }++ .one-third.column { width: 30.6666666667%; }+ .two-thirds.column { width: 65.3333333333%; }++ .one-half.column { width: 48%; }++ /* Offsets */+ .offset-by-one.column,+ .offset-by-one.columns { margin-left: 8.66666666667%; }+ .offset-by-two.column,+ .offset-by-two.columns { margin-left: 17.3333333333%; }+ .offset-by-three.column,+ .offset-by-three.columns { margin-left: 26%; }+ .offset-by-four.column,+ .offset-by-four.columns { margin-left: 34.6666666667%; }+ .offset-by-five.column,+ .offset-by-five.columns { margin-left: 43.3333333333%; }+ .offset-by-six.column,+ .offset-by-six.columns { margin-left: 52%; }+ .offset-by-seven.column,+ .offset-by-seven.columns { margin-left: 60.6666666667%; }+ .offset-by-eight.column,+ .offset-by-eight.columns { margin-left: 69.3333333333%; }+ .offset-by-nine.column,+ .offset-by-nine.columns { margin-left: 78.0%; }+ .offset-by-ten.column,+ .offset-by-ten.columns { margin-left: 86.6666666667%; }+ .offset-by-eleven.column,+ .offset-by-eleven.columns { margin-left: 95.3333333333%; }++ .offset-by-one-third.column,+ .offset-by-one-third.columns { margin-left: 34.6666666667%; }+ .offset-by-two-thirds.column,+ .offset-by-two-thirds.columns { margin-left: 69.3333333333%; }++ .offset-by-one-half.column,+ .offset-by-one-half.columns { margin-left: 52%; }++}++/* mine */++.edit-event {+}++.attending li {+ list-style-type: none;+ display: inline-block;+ margin: 0.5rem;+}++.event-attendants {+ border-top: solid 1px #eee;+ padding: 0.5rem;+ padding-top: 2rem;+ margin-bottom: 2rem;+}+.event-attendants:first-child {+ border-top-width: 0px;+}++footer {+ margin-top: 2rem;+ border-top: solid 1px #eee;+ padding-top: 2rem;+ text-align: center;+ color: #777;+}+footer a {+ color: #6691b6;+}+header h1 a {+ color: #444744;+}+.top {+ border-bottom: solid 1px #eee;+ margin-bottom: 2rem;+}++.attendants {+ padding-left: 0.5rem;+ padding-right: 0.5rem;+}++.attendants h4 {+ padding-left: 0.5rem;+}++.attendants ul {+ border-bottom: solid 1px #ccc;+ padding-bottom: 0.8rem;+ margin-bottom: 2.0rem;+ padding-left: 1rem;+}++.event h2 {+ margin-bottom: 1.0rem;+}++.edit-event {+ margin-bottom: 1.5rem;+ font-size: 1.3rem;+}++.event-info {+ padding: 7rem;+ margin-bottom: 2rem;+ color: #9f5a5a;+ font-size: 1.3rem;+ border-spacing: 1rem;+}+.event-info th {+ text-align: center;+}+.event-info td {+ text-align: center;+}++.edit-event a {+ color: #982424;+}++.edit-event a:hover {+ color: #c86464;+}++nav {+ padding-right: 0.5rem;+ margin-top: 0.5rem;+ font-size: 1.3rem;+ text-align: right;+ color: #555;+}+nav ul {+ padding-top: 0rem;+ padding-bottom: 0rem;+ margin-top: 0.5rem;+}+nav p {+ margin-bottom: 0.5rem;+}++.signed-in {+ margin-right: 0.5rem;+ color: #359;+}++nav li {+ list-style-type: none;+ display: inline-block;+ margin: 0.5rem;+}++.container {+ padding: 0.2rem;+ margin: 2rem auto;+}++nav li:after {+ margin-left: 1rem;+ content: "|";+ color: #ccc;+}+nav li:last-child:after {+ margin-left: 0rem;+ content: "";+}++form textarea {+ height: 30rem;+}+.error {+ color: red;+}+.digestive-functors-error-list {+ display: inline;+}+.digestive-functors-error {+ display: inline;+ margin-left: 10px;+ margin-right: 10px;+ color: red;+}+.digestive-functors-error ul {+ margin-left: 0;+ padding-left: 0;+}++.attending {+ text-align: center;+}++.securePostLink {+ display: inline;+ text-align: center;+}+.securePostLink input {+ display: inline-block !important;+ padding: 0 20px !important;+}++.markuser {+ color: #359 !important;+}+.markgreen {+ border-color: #2FdE25 !important;+ border-size: 6px;+}+.markred {+ border-color: #E72E27 !important;+ border-size: 6px;+}+.top-desc {+ color: #9f5a5a;+ margin-left: 2rem;+}++/* Base Styles+–––––––––––––––––––––––––––––––––––––––––––––––––– */+/* NOTE+html is set to 62.5% so that all the REM measurements throughout Skeleton+are based on 10px sizing. So basically 1.5rem = 15px :) */+html {+ font-size: 70%; }+body {+ font-size: 1.4em; /* currently ems cause chrome bug misinterpreting rems on body element */+ line-height: 1.2;+ font-family: Helvetica, Arial, sans-serif;+ color: #222;+}++/* Typography+–––––––––––––––––––––––––––––––––––––––––––––––––– */+h1, h2, h3, h4, h5, h6 {+ margin-top: 0;+ margin-bottom: 1.6rem;+ font-weight: 500;+}+h1 { font-size: 2.6rem; line-height: 1.1; letter-spacing: -.05rem;}+h2 { font-size: 2.2rem; line-height: 1.15; letter-spacing: -.05rem; }+h3 { font-size: 1.8rem; line-height: 1.2; letter-spacing: -.05rem; }+h4 { font-size: 1.6rem; line-height: 1.25; letter-spacing: -.03rem; }+h5 { font-size: 1.4rem; line-height: 1.4; letter-spacing: -.02rem; }+h6 { font-size: 1.4rem; line-height: 1.5; letter-spacing: 0; }++/* Larger than phablet */+@media (min-width: 550px) {+ h1 { font-size: 3.4rem; }+ h2 { font-size: 2.6rem; }+ h3 { font-size: 2.2rem; }+ h4 { font-size: 1.8rem; }+ h5 { font-size: 1.6rem; }+ h6 { font-size: 1.5rem; }+ body { font-size: 1.6em; }+}++p {+ margin-top: 0;+ margin-bottom: 1.6rem;+}+++/* Links+–––––––––––––––––––––––––––––––––––––––––––––––––– */+a {+ color: #0b85ef;+}+a:hover {+ color: #0b55df;+}++h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {+ color: #0b85ef;+ text-decoration: none;+}+a:hover {+ color: magenta;+}++/* Buttons+–––––––––––––––––––––––––––––––––––––––––––––––––– */+.button,+button,+input[type="submit"],+input[type="reset"],+input[type="button"] {+ display: inline-block;+ height: 34px;+ padding: 0 25px;+ text-align: center;+ font-size: 14px;+ line-height: 34px;+ text-transform: uppercase;+ white-space: nowrap;+ border-radius: 4px;+ border: 1px solid #bbb;+ cursor: pointer;+ box-sizing: border-box; }+.button:hover,+button:hover,+input[type="submit"]:hover,+input[type="reset"]:hover,+input[type="button"]:hover,+.button:focus,+button:focus,+input[type="submit"]:focus,+input[type="reset"]:focus,+input[type="button"]:focus {+ color: #333;+ border-color: #888;+ outline: 0; }+.button.button-primary,+button.button-primary,+input[type="submit"].button-primary,+input[type="reset"].button-primary,+input[type="button"].button-primary {+ color: #FFF;+ background-color: #33C3F0;+ border-color: #33C3F0; }+.button.button-primary:hover,+button.button-primary:hover,+input[type="submit"].button-primary:hover,+input[type="reset"].button-primary:hover,+input[type="button"].button-primary:hover,+.button.button-primary:focus,+button.button-primary:focus,+input[type="submit"].button-primary:focus,+input[type="reset"].button-primary:focus,+input[type="button"].button-primary:focus {+ border-color: #1EAEDB; }+++/* Forms+–––––––––––––––––––––––––––––––––––––––––––––––––– */+input[type="email"],+input[type="number"],+input[type="search"],+input[type="text"],+input[type="tel"],+input[type="url"],+input[type="password"],+textarea,+select {+ height: 38px;+ padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */+ background-color: #fff;+ border: 1px solid #D1D1D1;+ border-radius: 4px;+ box-shadow: none;+ box-sizing: border-box; }+/* Removes awkward default styles on some inputs for iOS */+input[type="email"],+input[type="number"],+input[type="search"],+input[type="text"],+input[type="tel"],+input[type="url"],+input[type="password"],+textarea {+ -webkit-appearance: none;+ -moz-appearance: none;+ appearance: none; }+textarea {+ min-height: 65px;+ padding-top: 6px;+ padding-bottom: 6px; }+input[type="email"]:focus,+input[type="number"]:focus,+input[type="search"]:focus,+input[type="text"]:focus,+input[type="tel"]:focus,+input[type="url"]:focus,+input[type="password"]:focus,+textarea:focus,+select:focus {+ border: 1px solid #33C3F0;+ outline: 0; }+label,+legend {+ display: inline-block;+ margin: .5rem;+}+fieldset {+ padding: 0;+ border-width: 0; }+input[type="checkbox"],+input[type="radio"] {+ display: inline; }+label > .label-body {+ display: inline-block;+ margin-left: .5rem;+}+++/* Lists+–––––––––––––––––––––––––––––––––––––––––––––––––– */+ul {+ list-style: circle inside; }+ol {+ list-style: decimal inside; }+ol, ul {+ padding-left: 0;+ margin-top: 0; }+ul ul,+ul ol,+ol ol,+ol ul {+ margin: 1.5rem 0 1.5rem 3rem;+ font-size: 90%; }+li {+ margin-bottom: 1rem; }+++/* Code+–––––––––––––––––––––––––––––––––––––––––––––––––– */+code {+ padding: .2rem .5rem;+ margin: 0 .2rem;+ font-size: 90%;+ white-space: nowrap;+ background: #F1F1F1;+ border: 1px solid #E1E1E1;+ border-radius: 4px; }+pre > code {+ display: block;+ padding: 1rem 1.5rem;+ white-space: pre; }+++/* Tables+–––––––––––––––––––––––––––––––––––––––––––––––––– */+th,+td {+ padding: 12px 15px;+ text-align: left;+ border-bottom: 1px solid #E1E1E1; }+th:first-child,+td:first-child {+ padding-left: 0; }+th:last-child,+td:last-child {+ padding-right: 0; }+++/* Spacing+–––––––––––––––––––––––––––––––––––––––––––––––––– */+button,+.button {+ margin-bottom: 1rem; }+input,+textarea,+select,+fieldset {+ margin-bottom: .5rem; }+pre,+blockquote,+dl,+figure,+table,+p,+ul,+ol,+form {+ margin-bottom: 1.5rem; }+++/* Utilities+–––––––––––––––––––––––––––––––––––––––––––––––––– */+.u-full-width {+ width: 100%;+ box-sizing: border-box; }+.u-max-full-width {+ max-width: 100%;+ box-sizing: border-box; }+.u-pull-right {+ float: right; }+.u-pull-left {+ float: left; }+++/* Misc+–––––––––––––––––––––––––––––––––––––––––––––––––– */+hr {+ margin-top: 3rem;+ margin-bottom: 3.5rem;+ border-width: 0;+ border-top: 1px solid #E1E1E1; }+++/* Clearing+–––––––––––––––––––––––––––––––––––––––––––––––––– */++/* Self Clearing Goodness */+.container:after,+.row:after,+.u-cf {+ content: "";+ display: table;+ clear: both; }+++/* Media Queries+–––––––––––––––––––––––––––––––––––––––––––––––––– */+/*+Note: The best way to structure the use of media queries is to create the queries+near the relevant code. For example, if you wanted to change the styles for buttons+on small devices, paste the mobile query code up in the buttons section and style it+there.+*/+++/* Larger than mobile */+@media (min-width: 400px) {}++/* Larger than phablet (also point when grid becomes active) */+@media (min-width: 550px) {}++/* Larger than tablet */+@media (min-width: 750px) {}++/* Larger than desktop */+@media (min-width: 1000px) {}++/* Larger than Desktop HD */+@media (min-width: 1200px) {}
+ view.png view
binary file changed (absent → 40422 bytes)