Merge remote-tracking branch 'cgyarvin/learning' into learning

This commit is contained in:
C. Guy Yarvin 2016-04-09 11:00:39 -07:00
commit dcfd3c9b6b
7 changed files with 1453 additions and 644 deletions

View File

@ -199,7 +199,7 @@
:: 2n: functional hacks :: :: 2n: functional hacks ::
:: 2o: normalizing containers :: :: 2o: normalizing containers ::
:: 2p: serialization :: :: 2p: serialization ::
:: 2q: molds :: 2q: molds and mold builders ::
:: ::
~% %two + ~ ~% %two + ~
|% |%
@ -273,9 +273,6 @@
:: ::
:::: 2b: list logic :: :::: 2b: list logic ::
:: :: :: ::
:: flop, homo, lent, levy, lien, limo, murn, reap, ::
:: reel, roll, skid, skim, skip, scag, slag, snag, ::
:: sort, swag, turn, weld, welp, zing ::
:: :: :: ::
++ flop :: reverse ++ flop :: reverse
~/ %flop ~/ %flop
@ -463,8 +460,6 @@
:: :: :: ::
:::: 2c: bit arithmetic :: :::: 2c: bit arithmetic ::
:: :: :: ::
:: bex, can, cat, cut, end, fil, lsh, met, ::
:: rap, rep, rip, rsh, swp, xeb ::
:: ::
++ bex :: binary exponent ++ bex :: binary exponent
~/ %bex ~/ %bex
@ -555,7 +550,6 @@
:: :: :: ::
:::: 2d: bit logic :: :::: 2d: bit logic ::
:: :: :: ::
:: con, dis, mix, not ::
:: ::
++ con :: binary or ++ con :: binary or
~/ %con ~/ %con
@ -610,7 +604,6 @@
:: :: :: ::
:::: 2e: insecure hashing :: :::: 2e: insecure hashing ::
:: :: :: ::
:: fnv, mum, mug ::
:: ::
++ fnv |=(a/@ (end 5 1 (mul 16.777.619 a))) :: FNV scrambler ++ fnv |=(a/@ (end 5 1 (mul 16.777.619 a))) :: FNV scrambler
++ mum :: mug with murmur3 ++ mum :: mug with murmur3
@ -661,7 +654,7 @@
|- ^- @ |- ^- @
=+ c=(fnv (mix p.b (fnv q.b))) =+ c=(fnv (mix p.b (fnv q.b)))
=+ d=(mix (rsh 0 31 c) (end 0 31 c)) =+ d=(mix (rsh 0 31 c) (end 0 31 c))
?. =(0 c) c ?. =(0 d) d
$(q.b +(q.b)) $(q.b +(q.b))
=+ b=2.166.136.261 =+ b=2.166.136.261
|- ^- @ |- ^- @
@ -753,7 +746,6 @@
:::: :: :::: ::
:: 2g: unsigned powers :: :: 2g: unsigned powers ::
:: :: :: ::
:: pow, sqt ::
:: ::
++ pow :: unsigned exponent ++ pow :: unsigned exponent
~/ %pow ~/ %pow
@ -783,7 +775,6 @@
:: :: :: ::
:: 2h: set logic :: :: 2h: set logic ::
:: :: :: ::
:: in ::
:: ::
++ in :: set engine ++ in :: set engine
~/ %in ~/ %in
@ -978,7 +969,6 @@
:: :: :: ::
:::: 2i: map logic :: :::: 2i: map logic ::
:: :: :: ::
:: by ::
:: ::
++ by :: map engine ++ by :: map engine
~/ %by ~/ %by
@ -1262,7 +1252,6 @@
:: :: :: ::
:::: 2k: queue logic :: :::: 2k: queue logic ::
:: :: :: ::
:: to ::
:: ::
++ to :: queue engine ++ to :: queue engine
|_ a/(tree) |_ a/(tree)
@ -1312,7 +1301,7 @@
:: ::
+- tap :: adds list to end +- tap :: adds list to end
|= b/(list _?>(?=(^ a) n.a)) |= b/(list _?>(?=(^ a) n.a))
=+ 0 :: breaks tap.in match =+ 0 :: hack for jet match
^+ b ^+ b
?~ a ?~ a
b b
@ -1326,7 +1315,6 @@
:: :: :: ::
:::: 2l: container from container :: :::: 2l: container from container ::
:: :: :: ::
:: malt, molt, silt ::
:: ::
++ malt :: map from list ++ malt :: map from list
|* a/(list) |* a/(list)
@ -1343,7 +1331,6 @@
:: :: :: ::
:::: 2m: container from noun :: :::: 2m: container from noun ::
:: :: :: ::
:: ly, my, sy ::
:: ::
++ ly :: list from raw noun ++ ly :: list from raw noun
|* a/* |* a/*
@ -1359,8 +1346,6 @@
:: :: :: ::
:::: 2n: functional hacks :: :::: 2n: functional hacks ::
:: :: :: ::
:: aftr, cork, corl, cury, curr, fore, ::
:: hard, head, same, soft, tail, test ::
:: ::
++ aftr |*(a/$-(* *) |*(b/$-(* *) (pair b a))) :: pair after ++ aftr |*(a/$-(* *) |*(b/$-(* *) (pair b a))) :: pair after
++ cork |*({a/_|=(* **) b/gate} (corl b a)) :: compose forward ++ cork |*({a/_|=(* **) b/gate} (corl b a)) :: compose forward
@ -1403,7 +1388,6 @@
:: :: :: ::
:::: 2o: normalizing containers :: :::: 2o: normalizing containers ::
:: :: :: ::
:: jar, jug, map, set, qeu ::
:: ::
++ jar |*({a/mold b/mold} (map a (list b))) :: map of lists ++ jar |*({a/mold b/mold} (map a (list b))) :: map of lists
++ jug |*({a/mold b/mold} (map a (set b))) :: map of sets ++ jug |*({a/mold b/mold} (map a (set b))) :: map of sets
@ -1416,7 +1400,6 @@
:: ::
:::: 2p: serialization :: :::: 2p: serialization ::
:: :: :: ::
:: cue, jam, mat, rub ::
:: ::
++ cue :: unpack ++ cue :: unpack
~/ %cue ~/ %cue
@ -1491,7 +1474,6 @@
:: ::
:::: 2q: molds and mold builders :: :::: 2q: molds and mold builders ::
:: :: :: ::
:: tape ::
:: ::
++ char @t :: UTF8 byte ++ char @t :: UTF8 byte
++ cord @t :: UTF8, LSB first ++ cord @t :: UTF8, LSB first
@ -1522,12 +1504,19 @@
:: :: :: ::
:::: 3: layer three :: :::: 3: layer three ::
:: :: :: ::
:: 3a: signed and modular ints ::
:: 3b: floating point ::
:: 3c: urbit time ::
:: 3d: SHA hash family ::
:: 3e: AES encryption ::
:: 3f: scrambling ::
:: 3g: molds and mold builders ::
:: ::
~% %tri + ~ ~% %tri + ~
|% |%
:: ::
:::: 3a: signed and modular ints :: :::: 3a: signed and modular ints ::
:: :: :: ::
:: egcd, fe, fo, si ::
:: ::
++ egcd :: schneier's egcd ++ egcd :: schneier's egcd
|= {a/@ b/@} |= {a/@ b/@}
@ -1660,9 +1649,6 @@
:: :: :: ::
:::: 3b: floating point :: :::: 3b: floating point ::
:: :: :: ::
:: rd, rh, rs, rq ::
:: rlyd, rlys, rlyh, rlyq ::
:: ryld, ryls, rylh, rylq ::
:: ::
++ fn :: float, infinity, or NaN ++ fn :: float, infinity, or NaN
:: s=sign, e=exponent, a=arithmetic form :: s=sign, e=exponent, a=arithmetic form
@ -2683,10 +2669,8 @@
++ yer 31.536.000 :: (mul 365 day) ++ yer 31.536.000 :: (mul 365 day)
-- --
:: :: :: ::
:::: 3d: SHA family :: :::: 3d: SHA hash family ::
:: :: :: ::
:: shad, shaf, sham, shas, shax, shay, shaw, ::
:: shal, shaz, shan, og ::
:: ::
++ shad |=(ruz/@ (shax (shax ruz))) :: double sha-256 ++ shad |=(ruz/@ (shax (shax ruz))) :: double sha-256
++ shaf :: half sha-256 ++ shaf :: half sha-256
@ -3014,7 +2998,7 @@
[r +>.$(a (shas %og-s r))] [r +>.$(a (shas %og-s r))]
-- --
:: :: :: ::
:::: 3e: AES and friends :: :::: 3e: AES encryption ::
:: :: :: ::
:: aesc, ga :: :: aesc, ga ::
:: ::
@ -3514,6 +3498,22 @@
:: :: :: ::
:::: 4: layer four :: :::: 4: layer four ::
:: :: :: ::
:: 4a: exotic bases ::
:: 4b: text processing ::
:: 4c: tank printer ::
:: 4d: parsing (tracing) ::
:: 4e: parsing (combinators) ::
:: 4f: parsing (rule builders) ::
:: 4g: parsing (outside caller) ::
:: 4h: parsing (ascii glyphs) ::
:: 4i: parsing (useful idioms) ::
:: 4j: parsing (bases and base digits) ::
:: 4k: atom printing ::
:: 4l: atom parsing ::
:: 4m: formatting functions ::
:: 4n: virtualization ::
:: 4o: molds and mold builders ::
::
~% %qua ~% %qua
+ +
== ==
@ -3602,7 +3602,7 @@
`b `b
-- --
:: ::
:::: 4b: miscellaneous text processing :::: 4b: text processing
:: ::
++ at :: basic printing ++ at :: basic printing
|_ a/@ |_ a/@
@ -5432,9 +5432,6 @@
++ palo (pair vein opal) :: wing trace, match ++ palo (pair vein opal) :: wing trace, match
++ pock (pair axis nock) :: changes ++ pock (pair axis nock) :: changes
++ port (each palo (pair span nock)) :: successful match ++ port (each palo (pair span nock)) :: successful match
++ rule _|=(nail *edge) :: parsing rule
++ spot {p/path q/pint} :: range in file
++ tape (list char) :: string as list
++ tiki :: test case ++ tiki :: test case
$% {$& p/(unit term) q/wing} :: simple wing $% {$& p/(unit term) q/wing} :: simple wing
{$| p/(unit term) q/twig} :: named wing {$| p/(unit term) q/twig} :: named wing
@ -5646,7 +5643,15 @@
== :: == ::
-- => -- =>
:: :: :: ::
:::: 5: layer five :::: 5: layer five ::
:: ::
:: 5a: compiler utilities ::
:: 5b: macro expansion ::
:: 5c: compiler backend and prettyprinter ::
:: 5d: parser ::
:: 5e: caching compiler ::
:: 5f: molds and mold builders ::
:: 5g: profiling support (XX remove) ::
:: ::
~% %pen ~% %pen
+ +
@ -5659,6 +5664,7 @@
:: ::
:::: 5a: compiler utilities :::: 5a: compiler utilities
:: ::
++ bool `span`(fork [%atom %f `0] [%atom %f `1] ~) :: make loobean
++ cell :: make %cell span ++ cell :: make %cell span
~/ %cell ~/ %cell
|= {hed/span tal/span} |= {hed/span tal/span}
@ -5679,7 +5685,6 @@
%void %void
[%face giz der] [%face giz der]
:: ::
++ bool `span`(fork [%atom %f `0] [%atom %f `1] ~) :: make loobeal
++ fork :: make %fork span ++ fork :: make %fork span
~/ %fork ~/ %fork
|= yed/(list span) |= yed/(list span)
@ -8424,7 +8429,7 @@
[%sure [%fits [%leaf %tas -.q.vax] [%& 2]~] [%$ 1]] [%sure [%fits [%leaf %tas -.q.vax] [%& 2]~] [%$ 1]]
(~(fuse ut p.vax) [%cell %noun %noun]) (~(fuse ut p.vax) [%cell %noun %noun])
:: ::
:::: 5d: hoon parser :::: 5d: parser
:: ::
++ vang ++ vang
|= {bug/? wer/path} |= {bug/? wer/path}
@ -9664,7 +9669,92 @@
(slot axe xav) (slot axe xav)
-- --
:: ::
:::: 5f: profiling support (XX move) :::: 5f: molds and mold builders
::
++ arch {fil/(unit @uvI) dir/(map @ta $~)} :: fundamental node
++ arvo (wind {p/term q/mill} mill) :: arvo card
++ beam {{p/ship q/desk r/case} s/path} :: global name
++ beak {p/ship q/desk r/case} :: path prefix
++ bone @ud :: opaque duct
++ care ?($$ $u $v $w $x $y $z) :: namespace mode
++ case :: version
$% {$da p/@da} :: date
{$tas p/@tas} :: label
{$ud p/@ud} :: sequence
== ::
++ desk @tas :: ship desk case spur
++ cage (cask vase) :: global metadata
++ cask |*(a/$-(* *) (pair mark a)) :: global data
++ cuff :: permissions
$: p/(unit (set monk)) :: can be read by
q/(set monk) :: caused or created by
== ::
++ curd {p/@tas q/*} :: spanless card
++ dock (pair @p term) :: message target
++ duct (list wire) :: causal history
++ hypo |*(a/$-(* *) (pair span a)) :: span associated
++ hobo |* a/$-(* *) :: kiss wrapper
$? $% {$soft p/*} ::
== ::
a ::
== ::
++ kirk (unit (set monk)) :: audience
++ lens :: observation core
$_ ^? ::
|% ++ u *(unit (unit $~)) :: existence
++ v *(unit (unit cage)) :: full history
++ w *(unit (unit (unit cage))) :: latest diff
++ x *(unit (unit cage)) :: data at path
++ y *(unit (unit arch)) :: directory
++ z *(unit (unit cage)) :: current subtree
-- ::
++ mane $@(@tas {@tas @tas}) :: XML name+space
++ manx {g/marx c/marl} :: XML node
++ marc :: structured mark
$@ mark :: plain mark
$% {$tabl p/(list (pair marc marc))} :: map
== ::
++ mark @tas :: content span
++ marl (list manx) :: XML node list
++ mars {t/{n/$$ a/{i/{n/$$ v/tape} t/$~}} c/$~} :: XML cdata
++ mart (list {n/mane v/tape}) :: XML attributes
++ marx {n/mane a/mart} :: XML tag
++ mash |=(* (mass +<)) :: producing mass
++ mass (pair cord (each noun (list mash))) :: memory usage
++ mill (each vase milt) :: vase+metavase
++ milt {p/* q/*} :: metavase
++ monk (each ship {p/@tas q/@ta}) :: general identity
++ muse {p/@tas q/duct r/arvo} :: sourced move
++ move {p/duct q/arvo} :: arvo move
++ ovum {p/wire q/curd} :: spanless ovum
++ pane (list {p/@tas q/vase}) :: kernel modules
++ pass @ :: public key
++ pone (list {p/@tas q/vise}) :: kernel modules old
++ ring @ :: private key
++ ship @p :: network identity
++ sink (trel bone ship path) :: subscription
++ sley $- {* (unit (set monk)) term beam} :: namespace function
(unit (unit cage)) ::
++ slyd $- {* (unit (set monk)) term beam} :: super advanced
(unit (unit (cask))) ::
++ slyt $-({* *} (unit (unit))) :: old namespace
++ time @da :: galactic time
++ vile :: reflexive constants
$: typ/span :: -:!>(*span)
duc/span :: -:!>(*duct)
pah/span :: -:!>(*path)
mev/span :: -:!>([%meta *vase])
== ::
++ wind :: new kernel action
|* {a/$-(* *) b/$-(* *)} :: forward+reverse
$% {$pass p/path q/a} :: advance
{$slip p/a} :: lateral
{$sick p/b} :: lame refactoring
{$give p/b} :: retreat
== ::
++ wire path :: event pretext
::
:::: 5g: profiling support (XX move)
:: ::
++ doss ++ doss
$: mon/moan :: sample count $: mon/moan :: sample count
@ -9811,91 +9901,6 @@
~ ~
== ==
== ==
::
:::: 5g: molds and mold builders
::
++ arch {fil/(unit @uvI) dir/(map @ta $~)} :: fundamental node
++ arvo (wind {p/term q/mill} mill) :: arvo card
++ beam {{p/ship q/desk r/case} s/path} :: global name
++ beak {p/ship q/desk r/case} :: path prefix
++ bone @ud :: opaque duct
++ care ?($$ $u $v $w $x $y $z) :: namespace mode
++ case :: version
$% {$da p/@da} :: date
{$tas p/@tas} :: label
{$ud p/@ud} :: sequence
== ::
++ desk @tas :: ship desk case spur
++ cage (cask vase) :: global metadata
++ cask |*(a/$-(* *) (pair mark a)) :: global data
++ cuff :: permissions
$: p/(unit (set monk)) :: can be read by
q/(set monk) :: caused or created by
== ::
++ curd {p/@tas q/*} :: spanless card
++ dock (pair @p term) :: message target
++ duct (list wire) :: causal history
++ hypo |*(a/$-(* *) (pair span a)) :: span associated
++ hobo |* a/$-(* *) :: kiss wrapper
$? $% {$soft p/*} ::
== ::
a ::
== ::
++ kirk (unit (set monk)) :: audience
++ lens :: observation core
$_ ^? ::
|% ++ u *(unit (unit $~)) :: existence
++ v *(unit (unit cage)) :: full history
++ w *(unit (unit (unit cage))) :: latest diff
++ x *(unit (unit cage)) :: data at path
++ y *(unit (unit arch)) :: directory
++ z *(unit (unit cage)) :: current subtree
-- ::
++ mane $@(@tas {@tas @tas}) :: XML name+space
++ manx {g/marx c/marl} :: XML node
++ marc :: structured mark
$@ mark :: plain mark
$% {$tabl p/(list (pair marc marc))} :: map
== ::
++ mark @tas :: content span
++ marl (list manx) :: XML node list
++ mars {t/{n/$$ a/{i/{n/$$ v/tape} t/$~}} c/$~} :: XML cdata
++ mart (list {n/mane v/tape}) :: XML attributes
++ marx {n/mane a/mart} :: XML tag
++ mash |=(* (mass +<)) :: producing mass
++ mass (pair cord (each noun (list mash))) :: memory usage
++ mill (each vase milt) :: vase+metavase
++ milt {p/* q/*} :: metavase
++ monk (each ship {p/@tas q/@ta}) :: general identity
++ muse {p/@tas q/duct r/arvo} :: sourced move
++ move {p/duct q/arvo} :: arvo move
++ ovum {p/wire q/curd} :: spanless ovum
++ pane (list {p/@tas q/vase}) :: kernel modules
++ pass @ :: public key
++ pone (list {p/@tas q/vise}) :: kernel modules old
++ ring @ :: private key
++ ship @p :: network identity
++ sink (trel bone ship path) :: subscription
++ sley $- {* (unit (set monk)) term beam} :: namespace function
(unit (unit cage)) ::
++ slyd $- {* (unit (set monk)) term beam} :: super advanced
(unit (unit (cask))) ::
++ slyt $-({* *} (unit (unit))) :: old namespace
++ time @da :: galactic time
++ vile :: reflexive constants
$: typ/span :: -:!>(*span)
duc/span :: -:!>(*duct)
pah/span :: -:!>(*path)
mev/span :: -:!>([%meta *vase])
== ::
++ wind :: new kernel action
|* {a/$-(* *) b/$-(* *)} :: forward+reverse
$% {$pass p/path q/a} :: advance
{$slip p/a} :: lateral
{$sick p/b} :: lame refactoring
{$give p/b} :: retreat
== ::
++ wire path :: event pretext
-- => -- =>
:: :: :: ::
:::: 6: layer six :::: 6: layer six

View File

@ -5,10 +5,5 @@
/= dat /% /tree-json/ :: default include /= dat /% /tree-json/ :: default include
^- marl ^- marl
;= ;script(type "text/javascript"): window.tree = {(pojo (joba %data dat))} ;= ;script(type "text/javascript"): window.tree = {(pojo (joba %data dat))}
;div.container ;div#tree;
;div.row#main
;div#head;
;div#body;
==
==
== ==

View File

@ -328,7 +328,7 @@ html {
body { body {
font-family: "bau", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "bau", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 1rem; font-size: 1rem;
line-height: 2; line-height: 1.5;
color: #373a3c; color: #373a3c;
background-color: #fff; background-color: #fff;
} }
@ -646,7 +646,7 @@ mark,
.blockquote-footer { .blockquote-footer {
display: block; display: block;
font-size: 80%; font-size: 80%;
line-height: 2; line-height: 1.5;
color: #b1b7bd; color: #b1b7bd;
} }
@ -682,7 +682,7 @@ mark,
max-width: 100%; max-width: 100%;
height: auto; height: auto;
padding: .25rem; padding: .25rem;
line-height: 2; line-height: 1.5;
background-color: #fff; background-color: #fff;
border: 1px solid #ddd; border: 1px solid #ddd;
border-radius: .25rem; border-radius: .25rem;
@ -741,7 +741,7 @@ pre {
margin-top: 0; margin-top: 0;
margin-bottom: 1rem; margin-bottom: 1rem;
font-size: 90%; font-size: 90%;
line-height: 2; line-height: 1.5;
color: #373a3c; color: #373a3c;
} }
@ -1679,7 +1679,7 @@ pre code {
.table th, .table th,
.table td { .table td {
padding: .75rem; padding: .75rem;
line-height: 2; line-height: 1.5;
vertical-align: top; vertical-align: top;
border-top: 1px solid #eceeef; border-top: 1px solid #eceeef;
} }
@ -1875,7 +1875,7 @@ pre code {
width: 100%; width: 100%;
padding: .375rem .75rem; padding: .375rem .75rem;
font-size: 1rem; font-size: 1rem;
line-height: 2; line-height: 1.5;
color: #55595c; color: #55595c;
background-color: #fff; background-color: #fff;
background-image: none; background-image: none;
@ -1936,7 +1936,7 @@ pre code {
input[type="time"].form-control, input[type="time"].form-control,
input[type="datetime-local"].form-control, input[type="datetime-local"].form-control,
input[type="month"].form-control { input[type="month"].form-control {
line-height: 2.75rem; line-height: 2.25rem;
} }
input[type="date"].input-sm, input[type="date"].input-sm,
.input-group-sm input[type="date"].form-control, .input-group-sm input[type="date"].form-control,
@ -1967,7 +1967,7 @@ pre code {
} }
.form-control-static { .form-control-static {
min-height: 2.75rem; min-height: 2.25rem;
padding-top: .375rem; padding-top: .375rem;
padding-bottom: .375rem; padding-bottom: .375rem;
margin-bottom: 0; margin-bottom: 0;
@ -2074,9 +2074,9 @@ input[type="checkbox"].disabled {
.form-control-danger { .form-control-danger {
padding-right: 2.25rem; padding-right: 2.25rem;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center right .6875rem; background-position: center right .5625rem;
-webkit-background-size: 1.7875rem 1.7875rem; -webkit-background-size: 1.4625rem 1.4625rem;
background-size: 1.7875rem 1.7875rem; background-size: 1.4625rem 1.4625rem;
} }
.has-success .text-help, .has-success .text-help,
@ -2089,21 +2089,21 @@ input[type="checkbox"].disabled {
.has-success.checkbox label, .has-success.checkbox label,
.has-success.radio-inline label, .has-success.radio-inline label,
.has-success.checkbox-inline label { .has-success.checkbox-inline label {
color: #02d124; color: #64de79;
} }
.has-success .form-control { .has-success .form-control {
border-color: #02d124; border-color: #64de79;
} }
.has-success .input-group-addon { .has-success .input-group-addon {
color: #02d124; color: #64de79;
background-color: #a1feb0; background-color: white;
border-color: #02d124; border-color: #64de79;
} }
.has-success .form-control-feedback { .has-success .form-control-feedback {
color: #02d124; color: #64de79;
} }
.has-success .form-control-success { .has-success .form-control-success {
@ -2228,7 +2228,7 @@ input[type="checkbox"].disabled {
padding: .375rem 1rem; padding: .375rem 1rem;
font-size: 1rem; font-size: 1rem;
font-weight: normal; font-weight: normal;
line-height: 2; line-height: 1.5;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
vertical-align: middle; vertical-align: middle;
@ -2406,28 +2406,28 @@ fieldset[disabled] a.btn {
.btn-success { .btn-success {
color: #fff; color: #fff;
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-success:hover { .btn-success:hover {
color: #fff; color: #fff;
background-color: #029e1b; background-color: #3ad555;
border-color: #01941a; border-color: #32d34d;
} }
.btn-success:focus, .btn-success.focus { .btn-success:focus, .btn-success.focus {
color: #fff; color: #fff;
background-color: #029e1b; background-color: #3ad555;
border-color: #01941a; border-color: #32d34d;
} }
.btn-success:active, .btn-success.active, .btn-success:active, .btn-success.active,
.open > .btn-success.dropdown-toggle { .open > .btn-success.dropdown-toggle {
color: #fff; color: #fff;
background-color: #029e1b; background-color: #3ad555;
background-image: none; background-image: none;
border-color: #01941a; border-color: #32d34d;
} }
.btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus, .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus,
@ -2435,18 +2435,18 @@ fieldset[disabled] a.btn {
.open > .btn-success.dropdown-toggle:focus, .open > .btn-success.dropdown-toggle:focus,
.open > .btn-success.dropdown-toggle.focus { .open > .btn-success.dropdown-toggle.focus {
color: #fff; color: #fff;
background-color: #017b15; background-color: #29c244;
border-color: #01530e; border-color: #22a038;
} }
.btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success:disabled:focus, .btn-success:disabled.focus { .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success:disabled:focus, .btn-success:disabled.focus {
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-success.disabled:hover, .btn-success:disabled:hover { .btn-success.disabled:hover, .btn-success:disabled:hover {
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-warning { .btn-warning {
@ -2624,31 +2624,31 @@ fieldset[disabled] a.btn {
} }
.btn-success-outline { .btn-success-outline {
color: #02d124; color: #64de79;
background-color: transparent; background-color: transparent;
background-image: none; background-image: none;
border-color: #02d124; border-color: #64de79;
} }
.btn-success-outline:focus, .btn-success-outline.focus, .btn-success-outline:active, .btn-success-outline.active, .btn-success-outline:focus, .btn-success-outline.focus, .btn-success-outline:active, .btn-success-outline.active,
.open > .btn-success-outline.dropdown-toggle { .open > .btn-success-outline.dropdown-toggle {
color: #fff; color: #fff;
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-success-outline:hover { .btn-success-outline:hover {
color: #fff; color: #fff;
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.btn-success-outline.disabled:focus, .btn-success-outline.disabled.focus, .btn-success-outline:disabled:focus, .btn-success-outline:disabled.focus { .btn-success-outline.disabled:focus, .btn-success-outline.disabled.focus, .btn-success-outline:disabled:focus, .btn-success-outline:disabled.focus {
border-color: #3cfd5c; border-color: #b8f0c2;
} }
.btn-success-outline.disabled:hover, .btn-success-outline:disabled:hover { .btn-success-outline.disabled:hover, .btn-success-outline:disabled:hover {
border-color: #3cfd5c; border-color: #b8f0c2;
} }
.btn-warning-outline { .btn-warning-outline {
@ -2857,7 +2857,7 @@ input[type="button"].btn-block {
padding: 3px 20px; padding: 3px 20px;
clear: both; clear: both;
font-weight: normal; font-weight: normal;
line-height: 2; line-height: 1.5;
color: #373a3c; color: #373a3c;
text-align: inherit; text-align: inherit;
white-space: nowrap; white-space: nowrap;
@ -2912,7 +2912,7 @@ input[type="button"].btn-block {
display: block; display: block;
padding: 3px 20px; padding: 3px 20px;
font-size: .875rem; font-size: .875rem;
line-height: 2; line-height: 1.5;
color: #b1b7bd; color: #b1b7bd;
white-space: nowrap; white-space: nowrap;
} }
@ -3741,8 +3741,8 @@ input[type="button"].btn-block {
} }
.card-success { .card-success {
background-color: #02d124; background-color: #64de79;
border-color: #02d124; border-color: #64de79;
} }
.card-info { .card-info {
@ -3777,7 +3777,7 @@ input[type="button"].btn-block {
.card-success-outline { .card-success-outline {
background-color: transparent; background-color: transparent;
border-color: #02d124; border-color: #64de79;
} }
.card-warning-outline { .card-warning-outline {
@ -3938,7 +3938,7 @@ input[type="button"].btn-block {
float: left; float: left;
padding: .5rem .75rem; padding: .5rem .75rem;
margin-left: -1px; margin-left: -1px;
line-height: 2; line-height: 1.5;
color: #000; color: #000;
text-decoration: none; text-decoration: none;
background-color: #fff; background-color: #fff;
@ -4066,11 +4066,11 @@ a.label:focus, a.label:hover {
} }
.label-success { .label-success {
background-color: #02d124; background-color: #64de79;
} }
.label-success[href]:focus, .label-success[href]:hover { .label-success[href]:focus, .label-success[href]:hover {
background-color: #029e1b; background-color: #3ad555;
} }
.label-info { .label-info {
@ -4334,16 +4334,16 @@ a.label:focus, a.label:hover {
} }
.progress-success[value]::-webkit-progress-value { .progress-success[value]::-webkit-progress-value {
background-color: #02d124; background-color: #64de79;
} }
.progress-success[value]::-moz-progress-bar { .progress-success[value]::-moz-progress-bar {
background-color: #02d124; background-color: #64de79;
} }
@media screen and (min-width: 0\0) { @media screen and (min-width: 0\0) {
.progress-success .progress-bar { .progress-success .progress-bar {
background-color: #02d124; background-color: #64de79;
} }
} }
@ -4823,7 +4823,7 @@ button.close {
.modal-title { .modal-title {
margin: 0; margin: 0;
line-height: 2; line-height: 1.5;
} }
.modal-body { .modal-body {
@ -4888,7 +4888,7 @@ button.close {
font-size: .875rem; font-size: .875rem;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
line-height: 2; line-height: 1.5;
text-align: left; text-align: left;
text-align: start; text-align: start;
text-decoration: none; text-decoration: none;
@ -4988,7 +4988,7 @@ button.close {
font-size: .875rem; font-size: .875rem;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
line-height: 2; line-height: 1.5;
text-align: left; text-align: left;
text-align: start; text-align: start;
text-decoration: none; text-decoration: none;
@ -5566,11 +5566,11 @@ a.text-primary:focus, a.text-primary:hover {
} }
.text-success { .text-success {
color: #02d124 !important; color: #64de79 !important;
} }
a.text-success:focus, a.text-success:hover { a.text-success:focus, a.text-success:hover {
color: #029e1b; color: #3ad555;
} }
.text-info { .text-info {
@ -5617,11 +5617,11 @@ a.bg-primary:focus, a.bg-primary:hover {
.bg-success { .bg-success {
color: #fff !important; color: #fff !important;
background-color: #02d124 !important; background-color: #64de79 !important;
} }
a.bg-success:focus, a.bg-success:hover { a.bg-success:focus, a.bg-success:hover {
background-color: #029e1b; background-color: #3ad555;
} }
.bg-info { .bg-info {
@ -6004,6 +6004,10 @@ ul {
padding: 0 1rem; padding: 0 1rem;
} }
b, strong {
font-weight: 500;
}
hr { hr {
width: 66.666667%; width: 66.666667%;
height: 1px; height: 1px;
@ -6020,12 +6024,14 @@ h1,
h2, h2,
h3 { h3 {
padding-top: 2rem; padding-top: 2rem;
line-height: 4rem;
} }
h4, h4,
h5, h5,
h6 { h6 {
padding-top: 1rem; padding-top: 1rem;
line-height: 2rem;
} }
h3, h4 { h3, h4 {
@ -6052,6 +6058,31 @@ h1:first-of-type {
margin-bottom: 0; margin-bottom: 0;
} }
h1.first,
h2.first,
h3.first {
padding-top: 0;
padding-bottom: 2rem;
}
h1.child,
h2.child,
h3.child {
padding-bottom: 0;
}
.gray {
color: #55595c;
}
.gray-light {
color: #b1b7bd;
}
.gray-lighter {
color: #eceeef;
}
@media (max-width: 767px) { @media (max-width: 767px) {
h1 { h1 {
font-size: 2rem; font-size: 2rem;
@ -6086,7 +6117,7 @@ textarea:focus {
border-color: #000; border-color: #000;
} }
.container { body {
padding-top: 3rem; padding-top: 3rem;
padding-bottom: 9rem; padding-bottom: 9rem;
} }
@ -6128,7 +6159,7 @@ textarea:focus {
} }
.green { .green {
color: #02d124; color: #64de79;
} }
.yellow { .yellow {
@ -6150,7 +6181,7 @@ textarea:focus {
} }
.inverse.green { .inverse.green {
background-color: #02d124; background-color: #64de79;
} }
.inverse.yellow { .inverse.yellow {
@ -6249,13 +6280,11 @@ button#act {
.lead .logo { .lead .logo {
display: inline-block; display: inline-block;
width: 5rem; width: 3rem;
height: 5rem; height: 3rem;
margin-right: 3rem; margin-right: 1rem;
font-size: 4.4rem;
line-height: 5rem;
text-align: center; text-align: center;
border-radius: 5rem; border-radius: 50%;
} }
@media (max-width: 991px) { @media (max-width: 991px) {

View File

@ -6,22 +6,20 @@ div.input.valid-false {
color: #FF0808; color: #FF0808;
border-color: #FF0808; } border-color: #FF0808; }
div.meta { .grams {
display: inline-block; }
div.grams {
list-style-type: none; list-style-type: none;
padding: 0; padding: 0;
margin-top: -1.875rem; } margin-top: -1.875rem; }
.grams .meta {
display: inline-block; }
div.meta label { .grams .meta label {
background-color: #B1B7BD;
margin-right: 0.9375rem; margin-right: 0.9375rem;
height: 0.9375rem; height: 0.9375rem;
width: 0.9375rem; width: 0.9375rem;
text-align: center; } text-align: center; }
div.meta label:before { .grams .meta label:before {
content: attr(data-glyph); content: attr(data-glyph);
color: #fff; color: #fff;
font-family: 'scp'; font-family: 'scp';
@ -30,24 +28,24 @@ div.meta label:before {
line-height: 1rem; line-height: 1rem;
vertical-align: middle; } vertical-align: middle; }
div.meta label, .grams .meta label,
div.meta h2, .grams .meta h2,
div.meta h3 { .grams .meta h3 {
display: inline-block; } display: inline-block; }
div.meta h2, .grams .meta h2,
div.meta h3 { .grams .meta h3 {
font-family: 'scp'; font-family: 'scp';
font-size: .8rem; font-size: .8rem;
font-weight: 400; font-weight: 400;
margin-top: 0; margin-top: 0;
padding-top: 0; } padding-top: 0; }
div.meta h3 { .grams .meta h3 {
margin-left: 2rem; margin-left: 2rem;
line-height: 1rem; } line-height: 1rem; }
div.meta .time { .grams .meta .time {
padding-right: 2rem; } padding-right: 2rem; }
div.gram.first:first-of-type { div.gram.first:first-of-type {
@ -71,8 +69,11 @@ div.gram.same:hover div.meta {
.exp { .exp {
font-family: 'scp'; font-family: 'scp';
font-size: .9rem; font-size: .9rem; }
max-height: 2rem; } .exp .speech {
white-space: nowrap;
max-width: 100%;
overflow-x: scroll; }
.exp .speech > span { .exp .speech > span {
color: #fff; color: #fff;
background-color: #000; background-color: #000;
@ -89,6 +90,19 @@ div.gram.same:hover div.meta {
background-color: #000; background-color: #000;
color: #fff; } color: #fff; }
.comment .speech a.btn {
background-color: transparent;
color: #B1B7BD;
font-size: .9rem;
border: 0;
border-bottom: 3px solid #b1b7bd;
text-transform: none;
text-decoration: none;
padding: 0;
line-height: 1rem;
margin: 1rem 0 2rem 0;
letter-spacing: 0; }
.gram pre { .gram pre {
background-color: transparent; } background-color: transparent; }

View File

@ -590,11 +590,13 @@ module.exports = recl({
if (this.state.station && this.state.listening.indexOf(this.state.station) === -1) { if (this.state.station && this.state.listening.indexOf(this.state.station) === -1) {
MessageActions.listenStation(this.state.station); MessageActions.listenStation(this.state.station);
} }
$(window).on('scroll', this.checkMore); if (this.props.readOnly == null) {
$(window).on('scroll', this.checkMore);
window.util.scrollToBottom();
}
this.focused = true; this.focused = true;
$(window).on('blur', this._blur); $(window).on('blur', this._blur);
$(window).on('focus', this._focus); return $(window).on('focus', this._focus);
return window.util.scrollToBottom();
}, },
componentWillUpdate: function(props, state) { componentWillUpdate: function(props, state) {
var $window, i, j, key, lastSaid, len, len1, message, nowSaid, old, ref, ref1, results, sameAs, scrollTop; var $window, i, j, key, lastSaid, len, len1, message, nowSaid, old, ref, ref1, results, sameAs, scrollTop;
@ -623,7 +625,7 @@ module.exports = recl({
}, },
componentDidUpdate: function(_props, _state) { componentDidUpdate: function(_props, _state) {
var _messages, d, t; var _messages, d, t;
if (this.setOffset) { if (this.setOffset && (this.props.readOnly == null)) {
$(window).scrollTop(this.setOffset); $(window).scrollTop(this.setOffset);
this.setOffset = null; this.setOffset = null;
} }
@ -657,7 +659,7 @@ module.exports = recl({
return StationActions.setAudience(audi); return StationActions.setAudience(audi);
}, },
render: function() { render: function() {
var _messages, lastIndex, lastSaid, messageHeights, messages, ref, station; var _messages, body, lastIndex, lastSaid, messageHeights, messages, ref, station;
station = this.state.station; station = this.state.station;
messages = this.sortedMessages(this.state.messages); messages = this.sortedMessages(this.state.messages);
this.last = messages[messages.length - 1]; this.last = messages[messages.length - 1];
@ -696,15 +698,20 @@ module.exports = recl({
})); }));
}; };
})(this)); })(this));
if (this.props.readOnly == null) {
body = React.createElement(Infinite, {
useWindowAsScrollContainer: true,
containerHeight: window.innerHeight,
elementHeight: messageHeights,
key: "messages-infinite"
}, _messages);
} else {
body = _messages;
}
return div({ return div({
className: "grams", className: "grams",
key: "messages" key: "messages"
}, React.createElement(Infinite, { }, body);
useWindowAsScrollContainer: true,
containerHeight: window.innerHeight,
elementHeight: messageHeights,
key: "messages-infinite"
}, _messages));
} }
}); });
@ -1280,6 +1287,9 @@ TreeActions.registerComponent("talk", React.createClass({
var station; var station;
require('./utils/util.coffee'); require('./utils/util.coffee');
require('./utils/move.coffee'); require('./utils/move.coffee');
if (!this.props.readonly) {
$(window).on('scroll', window.util.checkScroll);
}
station = this.getStation(); station = this.getStation();
StationActions.listen(); StationActions.listen();
StationActions.listenStation(station); StationActions.listenStation(station);
@ -1959,8 +1969,6 @@ $(window).on('scroll', function(e) {
return so.ls = so.cs; return so.ls = so.cs;
}); });
$(window).on('scroll', window.util.checkScroll);
},{}],16:[function(require,module,exports){ },{}],16:[function(require,module,exports){
if (!window.util) { if (!window.util) {

View File

@ -14,9 +14,62 @@ img.logo {
img.logo.first { img.logo.first {
margin-bottom: 2rem; } margin-bottom: 2rem; }
div.logo {
width: 3rem;
height: 3rem;
background-color: #fff;
display: inline-block;
margin-right: 1rem;
border-radius: 50%;
vertical-align: middle;
margin-top: -.8rem;
background-color: #000; }
div.logo:before {
content: "~";
color: #B1B7BD;
font-size: 2.6rem;
vertical-align: middle;
line-height: 3rem;
margin-top: .2rem;
text-align: center;
width: 2rem;
display: inline-block; }
div.logo.inverse:before {
color: #fff; }
.lead .logo.inverse {
margin-top: -1.4rem; }
.short { .short {
width: 75%; } width: 75%; }
.meta-data {
padding: 1rem;
background-color: #f7f7f9;
font-family: 'scp';
max-width: 12rem;
margin-bottom: 2rem; }
.meta-data h2,
.meta-data h3 {
padding: 0;
margin: 0;
font-size: 1rem;
line-height: 2rem; }
.link-next {
margin-top: 4rem; }
.link-next a {
padding: .6rem;
border: 2px solid;
text-decoration: none;
font-weight: 500;
margin-top: 4rem; }
.link-next a:hover {
background-color: #000;
color: #fff; }
.loading:before { .loading:before {
font-family: 'scp'; font-family: 'scp';
background-color: #000; background-color: #000;
@ -27,6 +80,7 @@ img.logo.first {
height: 1.6rem; height: 1.6rem;
text-align: center; text-align: center;
font-size: .8rem; font-size: .8rem;
line-height: 1.7rem;
display: block; display: block;
font-weight: 600; font-weight: 600;
z-index: 3; } z-index: 3; }
@ -66,7 +120,8 @@ img.logo.first {
#head { #head {
top: 0; top: 0;
z-index: 10; z-index: 10;
width: 100%; } width: 100%;
position: absolute; }
#head.m-down, #head.m-down,
#head.m-up { #head.m-up {
position: absolute; } position: absolute; }
@ -93,22 +148,54 @@ img.logo.first {
.ctrl ul.nav li { .ctrl ul.nav li {
width: 100%; width: 100%;
overflow: hidden; overflow: hidden;
white-space: nowrap; } white-space: nowrap;
margin-bottom: .6rem; }
.ctrl ul.nav:hover { .ctrl ul.nav:hover {
overflow: visible; } overflow: visible; }
.ctrl a.nav-link:hover {
text-decoration: underline; }
.ctrl a.nav-link { .ctrl a.nav-link {
letter-spacing: 1px; } letter-spacing: 1px;
text-decoration: none;
border-bottom: 2px solid;
line-height: 1rem; }
.ctrl .selected a.nav-link { .ctrl .selected a.nav-link {
font-weight: 500; } font-weight: 500; }
.ctrl.navbar {
position: relative;
margin-bottom: 3rem;
padding: 0;
background-color: transparent; }
.ctrl.navbar .icon,
.ctrl.navbar ul.nav,
.ctrl.navbar li {
display: inline-block;
padding: 0; }
.ctrl.navbar ul.nav {
margin-top: 0;
overflow: visible; }
.ctrl.navbar ul.nav li {
width: auto;
display: inline-block;
min-width: 16.66667%; }
.ctrl.navbar ul.nav .right {
float: right; }
.ctrl.navbar ul.nav .btn {
margin: 0;
padding: 0;
border: 0;
text-transform: none; }
.ctrl.open, .ctrl.open,
.ctrl:hover { .ctrl:hover {
max-width: 33.33333%; max-width: 33.33333%;
min-width: 16.66667%; min-width: 16.66667%;
width: auto; } width: auto; }
.ctrl.navbar.open,
.ctrl.navbar:hover {
max-width: none;
min-width: none; }
@media (max-width: 991px) { @media (max-width: 991px) {
ul.nav { ul.nav {
line-height: 1.3rem; } line-height: 1.3rem; }
@ -137,7 +224,10 @@ img.logo.first {
.ctrl.open { .ctrl.open {
max-height: 12rem; } max-height: 12rem; }
a.nav-link { a.nav-link {
font-size: 1rem; } font-size: 1rem;
line-height: 1rem;
text-decoration: none;
border-bottom: 2px solid; }
.ctrl.open ul.nav { .ctrl.open ul.nav {
max-height: 9rem; max-height: 9rem;
overflow-y: scroll; } } overflow-y: scroll; } }
@ -249,35 +339,43 @@ img.logo.first {
margin-top: 0; margin-top: 0;
margin-bottom: 0; } } margin-bottom: 0; } }
[data-path^='/docs'] .selected .nav-link { [data-path^='/docs'] .selected .nav-link,
color: #02D124; } [data-path^='/work'] .selected .nav-link {
color: #55595c; }
[data-path^='/docs'] .nav-link { [data-path^='/docs'] .nav-link,
[data-path^='/work'] .nav-link {
font-weight: 500; } font-weight: 500; }
[data-path^='/docs'] .home { [data-path^='/docs'] .home,
background-color: #0500F0; [data-path^='/work'] .home {
border-color: #0500F0; } background-color: #55595c;
border-color: #55595c; }
[data-path^='/docs'] .home:hover { [data-path^='/docs'] .home:hover,
background-color: #0500F0; [data-path^='/work'] .home:hover {
border-color: #0500F0; background-color: #B1B7BD;
border-color: #B1B7BD;
opacity: .6; } opacity: .6; }
[data-path^='/docs'] .home:before { [data-path^='/docs'] .home:before,
[data-path^='/work'] .home:before {
content: "~"; content: "~";
color: #fff; color: #fff;
line-height: .8rem; line-height: .8rem;
font-size: 1.4rem; } font-size: 1.4rem;
padding-left: 1px; }
@media (max-width: 991px) { @media (max-width: 991px) {
[data-path^='/docs'] .home:before { [data-path^='/docs'] .home:before,
[data-path^='/work'] .home:before {
line-height: 0.7rem; line-height: 0.7rem;
font-size: 1rem; font-size: 1rem;
margin-left: .06rem; } } margin-left: .06rem; } }
@media (max-width: 767px) { @media (max-width: 767px) {
[data-path^='/docs'] .home:before { [data-path^='/docs'] .home:before,
[data-path^='/work'] .home:before {
line-height: .7rem; line-height: .7rem;
margin-left: .05rem; margin-left: .05rem;
font-size: 1rem; } } font-size: 1rem; } }
@ -322,35 +420,183 @@ img.logo.first {
line-height: 1rem; line-height: 1rem;
margin-bottom: 1rem; } } margin-bottom: 1rem; } }
.urbit.navbar.ctrl .icon .home {
border-color: #B1B7BD;
background-color: #B1B7BD;
width: 3rem;
height: 3rem;
margin: 0 4rem 0 0; }
.urbit.navbar.ctrl .icon .home:before {
content: "~";
color: #fff;
font-size: 2.6rem;
line-height: 2.6rem;
text-align: center;
width: 2.4rem;
display: inline-block; }
.urbit.navbar.ctrl ul.nav li {
height: 3rem;
vertical-align: middle; }
.urbit.navbar.ctrl ul.nav li a {
text-decoration: none;
color: #B1B7BD;
font-weight: 500;
font-size: 1rem;
line-height: 3rem; }
.urbit.navbar.ctrl ul.nav .btn {
border: 3px solid #000;
margin-top: -3px;
height: 3rem;
padding: 0rem; }
.urbit.navbar.ctrl ul.nav .btn a {
font-size: 1rem;
color: #000;
letter-spacing: 0; }
.urbit.navbar.ctrl ul.nav .btn.selected,
.urbit.navbar.ctrl ul.nav .btn:hover {
background-color: #000; }
.urbit.navbar.ctrl ul.nav .btn.selected a,
.urbit.navbar.ctrl ul.nav .btn:hover a {
color: #fff; }
.urbit.navbar.ctrl ul.nav li a:hover,
.urbit.navbar.ctrl ul.nav li.selected a {
color: #000; }
.urbit.navbar.ctrl .subnav ul.nav {
height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav li {
height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav li a {
line-height: 1.5rem; }
.urbit.navbar.ctrl .subnav ul.nav .btn {
position: relative;
height: 3rem; }
.urbit.navbar.ctrl .subnav ul.nav .btn a {
line-height: 3rem; }
.urbit.home.navbar.ctrl .icon .home {
opacity: 0;
border-color: #fff;
background-color: #fff; }
.urbit.home.navbar.ctrl .icon .home:before {
color: #B1B7BD; }
.urbit.home.navbar.ctrl ul.nav li a {
color: #f7f7f9; }
@media (max-width: 767px) {
.urbit.navbar.ctrl .icon {
margin-top: .5rem;
margin-bottom: .5rem; }
.urbit.navbar.ctrl .icon .home {
width: 2rem;
height: 2rem;
margin: 0; }
.urbit.navbar.ctrl .icon .home:before {
font-size: 1.6rem;
line-height: 1.8rem;
width: 1.6rem; }
.urbit.navbar.ctrl .navbar-toggler {
margin-top: .5rem;
margin-left: 1rem; }
.urbit.navbar.ctrl ul.nav,
.urbit.navbar.ctrl .subnav ul.nav {
overflow: visible;
height: auto;
margin-left: 3rem;
float: left; }
.urbit.navbar.ctrl ul.nav li,
.urbit.navbar.ctrl .subnav ul.nav li {
display: block;
height: 1.5rem; }
.urbit.navbar.ctrl ul.nav li a,
.urbit.navbar.ctrl .subnav ul.nav li a {
line-height: 1.5rem; }
.urbit.navbar.ctrl ul.nav li.btn,
.urbit.navbar.ctrl .subnav ul.nav li.btn {
height: 1.5rem;
border: 0; }
.urbit.navbar.ctrl ul.nav li.btn a,
.urbit.navbar.ctrl .subnav ul.nav li.btn a {
color: #64DE79;
line-height: 1.5rem; } }
.lead h1:first-of-type { .lead h1:first-of-type {
padding-bottom: 0; } padding-bottom: 0; }
.body[data-path^='/docs'] h1 { .flush {
color: #0500F0; } padding-top: 0; }
.body[data-path^='/docs'] h1 code { .h-arrow {
width: 100%;
height: 9rem;
margin-bottom: 3rem; }
.h-arrow h1,
.h-arrow img {
float: left; }
.h-arrow img {
height: 6rem;
margin: 1rem 0 0 1rem; }
.h-arrow h1 {
color: #000;
display: inline-block;
line-height: 4rem; }
.h-arrow h1 code {
background-color: transparent;
color: #000; }
.footer {
margin-top: 6rem;
font-weight: 500;
color: #B1B7BD; }
.footer a {
color: #55595c;
text-decoration: none;
border-bottom: 2px solid #55595c;
margin-left: .6rem; }
.body[data-path^='/docs'] h1,
.body[data-path^='/work'] h1 {
color: #000; }
.body[data-path^='/docs'] h1 code,
.body[data-path^='/work'] h1 code {
background-color: transparent; background-color: transparent;
color: #0500F0; color: #000;
padding: 0; } padding: 0; }
.body[data-path^='/docs'] .book h2 { .body[data-path^='/docs'] .book h2,
.body[data-path^='/work'] .book h2 {
color: #B1B7BD; } color: #B1B7BD; }
.body[data-path^='/docs'] .book h2 code { .body[data-path^='/docs'] .book h2 code,
color: #0500F0; .body[data-path^='/work'] .book h2 code {
color: #000;
background-color: transparent; } background-color: transparent; }
.body[data-path^='/docs'] .book h2 a { .body[data-path^='/docs'] .book h2 a,
color: #0500F0; } .body[data-path^='/work'] .book h2 a {
color: #000; }
.body[data-path^='/docs'] .book hr { .body[data-path^='/docs'] .book hr,
.body[data-path^='/work'] .book hr {
margin-bottom: 3rem; } margin-bottom: 3rem; }
.body[data-path^='/work'] h2 {
color: #000; }
.body[data-path^='/docs/system/hoon/runes/'] h1 { .body[data-path^='/docs/system/hoon/runes/'] h1 {
color: #B1B7BD; } color: #B1B7BD; }
.body[data-path^='/docs/system/hoon/runes/basic'] h1 { .body[data-path^='/docs/system/hoon/runes/basic'] h1 {
color: #0500F0; } color: #000; }
.body[data-path^='/docs/system/hoon/library/'] h3 { .body[data-path^='/docs/system/hoon/library/'] h3 {
font-size: 1.5rem; } font-size: 1.5rem; }
@ -362,6 +608,176 @@ img.logo.first {
padding-top: 0; padding-top: 0;
margin-bottom: 0; } margin-bottom: 0; }
.body .urbit h1 {
color: #000;
line-height: 4rem; }
.body .urbit a.green:hover {
color: #64DE79; }
.body .urbit .container.stack {
margin-bottom: 3rem; }
.body .urbit .container.stack.six {
margin-top: 12rem;
margin-bottom: 6rem; }
.body .urbit .btn.black {
text-transform: none;
text-decoration: none;
border: 3px solid #000;
letter-spacing: 0;
margin-right: 1rem; }
.body .urbit button.submit:hover,
.body .urbit .btn.black:hover {
background-color: #000;
color: #fff; }
.body .urbit .front {
padding-bottom: 4rem; }
.body .urbit .front h1 {
padding-top: 0; }
.body .urbit .front h1,
.body .urbit .front h1 a {
font-size: 4rem;
line-height: 6rem; }
.body .urbit .image-fs {
height: 44rem;
margin-bottom: 3rem; }
.body .urbit .image-fs .text-container,
.body .urbit .image-fs .image-container {
position: absolute; }
.body .urbit .image-fs .text-container {
display: table;
height: 44rem;
width: 100%;
z-index: 1; }
.body .urbit .image-fs .text-container .text {
display: table-cell;
vertical-align: middle; }
.body .urbit .image-fs .text-container .rect {
width: 60%;
margin-left: auto;
margin-right: auto; }
.body .urbit .image-fs .text-container .rect h1 {
padding-bottom: 1rem;
text-align: left; }
.body .urbit .image-fs .text-container .rect.no-header {
font-weight: 500;
color: #fff;
font-size: 1.4rem; }
.body .urbit .image-fs .text-container .rect.no-header p.email {
font-size: 1rem; }
.body .urbit .image-fs .text-container .rect.no-header button.submit {
background-color: transparent;
border-color: #fff; }
.body .urbit .image-fs .image-container {
z-index: 0;
height: 44rem;
width: 100%;
overflow: hidden; }
.body .urbit .image-fs .image-container img {
position: relative;
left: 50%;
margin-left: -50%;
top: 50%;
margin-top: -50%;
min-height: 44rem;
min-width: 100%; }
.body .urbit .image-fs h1 {
text-align: center;
color: #fff; }
.body .urbit .image-fs.first {
margin-top: -9rem; }
.body .urbit .slide {
margin-bottom: 12rem;
position: relative; }
.body .urbit .slide h1 {
padding-bottom: 1rem; }
.body .urbit .slide .pair {
display: table; }
.body .urbit .slide .pair .text,
.body .urbit .slide .pair .image {
display: table-cell;
vertical-align: middle; }
.body .urbit .slide .pair .image.right {
padding-left: 5%; }
.body .urbit .slide .pair .image.left {
padding-right: 5%; }
.body .urbit .slide .pair .text {
width: 75%; }
.body .urbit .slide .pair .image {
width: 20%; }
.body .urbit .slide .pair p:last-child {
margin-bottom: 0; }
.body .urbit .end {
padding: 1rem;
background-color: #64DE79;
color: white;
text-decoration: none;
font-size: 2rem;
font-weight: 500; }
.body .urbit input.email,
.body .urbit button.submit {
line-height: 1rem;
padding: .6rem;
border: 0; }
.body .urbit input.email {
font-weight: 500;
background-color: #B1B7BD;
color: #fff;
margin-right: 1rem;
border: 3px solid #B1B7BD; }
.body .urbit input.email::-moz-placeholder {
color: #D2D2D2; }
.body .urbit input.email::-webkit-input-placeholder {
color: #D2D2D2; }
.body .urbit button.submit {
text-transform: none;
text-decoration: none;
border: 3px solid #000;
background-color: #fff;
font-weight: 500;
letter-spacing: 0; }
.body .urbit .last a {
display: block;
font-weight: 500;
color: #B1B7BD; }
.body .urbit .last h2 {
padding-top: 0;
padding-bottom: 1rem;
margin-bottom: 0; }
.body .urbit.home p.email {
margin-top: 3rem; }
@media (max-width: 767px) {
.body .urbit {
margin-top: 4rem; }
.body .urbit .slide .pair,
.body .urbit .slide .pair .text,
.body .urbit .slide .pair .image {
display: block;
width: 100%; }
.body .urbit .slide .pair .image {
text-align: center; }
.body .urbit .slide .pair .image.left {
margin-bottom: 2rem; }
.body .urbit .slide .pair .image.right {
margin-top: 2rem; } }
@keyframes menu-open { @keyframes menu-open {
0% { 0% {
visibility: hidden; } visibility: hidden; }
@ -468,14 +884,31 @@ img.logo.first {
font-weight: 500; font-weight: 500;
font-size: 1.4rem; } font-size: 1.4rem; }
.body[data-path^='/docs'] .list { .body[data-path^='/docs'] .list,
.body[data-path^='/work'] .list {
list-style-type: none; list-style-type: none;
padding-left: 0; } padding-left: 0; }
.body[data-path^='/docs'] .list a, .body[data-path^='/docs'] .list a,
.body[data-path^='/docs'] .list h1 { .body[data-path^='/docs'] .list h1,
color: #02D124; .body[data-path^='/work'] .list a,
.body[data-path^='/work'] .list h1 {
color: #55595c;
font-weight: 500; font-weight: 500;
height: 2rem; } height: 2rem;
display: inline;
text-decoration: none; }
.body[data-path^='/docs'] .list h1,
.body[data-path^='/work'] .list h1 {
border-bottom: 2px solid #55595c; }
.body[data-path^='/work'] .list.main a,
.body[data-path^='/work'] .list.main h1 {
font-size: 2rem;
line-height: 4rem;
height: 4rem; }
.body[data-path^='/work'] .list.main h1 {
border-width: 4px; }
.body[data-path^='/docs'] .list.runes { .body[data-path^='/docs'] .list.runes {
margin-top: 3rem; } margin-top: 3rem; }
@ -493,7 +926,7 @@ img.logo.first {
.body[data-path^='/docs'] .list.runes a h1 code { .body[data-path^='/docs'] .list.runes a h1 code {
margin-right: 1rem; margin-right: 1rem;
background-color: transparent; background-color: transparent;
color: #0500F0; } color: #55595c; }
.body[data-path^='/docs'] .list.runes a code { .body[data-path^='/docs'] .list.runes a code {
background-color: #eceeef; } background-color: #eceeef; }
.body[data-path^='/docs'] .list.runes a code { .body[data-path^='/docs'] .list.runes a code {
@ -512,6 +945,21 @@ img.logo.first {
.body[data-path^='/docs'] .list.runes a:hover:after { .body[data-path^='/docs'] .list.runes a:hover:after {
background-color: #0500F0; } background-color: #0500F0; }
.urbit ul.blog {
list-style-type: none;
padding-left: 0; }
.urbit ul.blog li {
margin-bottom: 12rem; }
.urbit ul.blog .btn {
padding: .3rem;
border: 3px solid #64DE79;
color: #64DE79;
text-decoration: none;
text-transform: none; }
.urbit ul.blog .btn:hover {
background-color: #64DE79;
color: #fff; }
.kids.runes h1 { .kids.runes h1 {
padding-top: 3rem; } padding-top: 3rem; }
@ -528,6 +976,53 @@ img.logo.first {
.kids.runes > div p:first-of-type { .kids.runes > div p:first-of-type {
font-weight: 500; } font-weight: 500; }
.urbit .post .date,
.urbit.post .date {
font-family: 'scp';
color: #B1B7BD;
font-size: .7rem;
font-weight: 200; }
.urbit .post h1.title,
.urbit .post p.preview,
.urbit.post h1.title,
.urbit.post p.preview {
font-weight: 500; }
.urbit .post h1.title,
.urbit.post h1.title {
font-size: 2rem;
padding-bottom: 0; }
.urbit .post h1.title,
.urbit .post img,
.urbit.post h1.title,
.urbit.post img {
width: 100%;
margin-bottom: 2rem; }
.urbit .post .date,
.urbit .post p.preview,
.urbit .post h3.author,
.urbit.post .date,
.urbit.post p.preview,
.urbit.post h3.author {
margin-bottom: .6rem; }
.urbit .post h3.author,
.urbit.post h3.author {
padding-top: 0;
font-size: 1rem;
font-weight: 200; }
.urbit .post h3:before,
.urbit.post h3:before {
content: "—";
margin-right: .6rem; }
.urbit.post .preview {
max-width: 75%; }
.sections h1 { .sections h1 {
font-size: 2rem; font-size: 2rem;
color: #0500F0; } color: #0500F0; }
@ -546,7 +1041,7 @@ img.logo.first {
.sections ul li, .sections ul li,
.sections ul li a, .sections ul li a,
.sections ul li h1 span { .sections ul li h1 span {
color: #02D124; color: #55595c;
height: 2rem; } height: 2rem; }
.sections .kids > div { .sections .kids > div {
@ -555,7 +1050,8 @@ img.logo.first {
margin-right: 3rem; margin-right: 3rem;
margin-top: 2rem; margin-top: 2rem;
min-width: 14rem; min-width: 14rem;
margin-bottom: 3rem; } margin-bottom: 3rem;
padding: 0; }
.sections .kids > div p { .sections .kids > div p {
font-weight: 500; } font-weight: 500; }
@ -564,7 +1060,7 @@ img.logo.first {
display: none; } display: none; }
.lead-offset { .lead-offset {
margin-left: 8rem; } margin-left: 4rem; }
@media (max-width: 991px) { @media (max-width: 991px) {
.lead-offset { .lead-offset {
@ -578,7 +1074,7 @@ img.logo.first {
.add-comment { .add-comment {
width: 100%; width: 100%;
border-top: 3px dotted #000; border-top: 3px dotted #f7f7f9;
margin-top: 6rem; } margin-top: 6rem; }
.add-comment .btn { .add-comment .btn {
font-size: .8rem; } font-size: .8rem; }
@ -586,7 +1082,7 @@ img.logo.first {
width: 66%; width: 66%;
display: block; display: block;
height: 12rem; height: 12rem;
background-color: #F7F7F7; background-color: #f7f7f9;
border-bottom: 0; border-bottom: 0;
margin-bottom: 2rem; margin-bottom: 2rem;
margin-top: 3rem; margin-top: 3rem;
@ -596,16 +1092,17 @@ img.logo.first {
padding-top: 3rem; } padding-top: 3rem; }
.comments .comment { .comments .comment {
margin-top: 2rem; } margin-top: 2rem; }
.comments .comment h3,
.comments .comment > span {
font-family: 'scp'; }
.comments .comment > span { .comments .comment > span {
font-family: 'scp';
font-size: .8rem; font-size: .8rem;
color: #B1B7BD; } color: #B1B7BD; }
.comments .comment h3 { .comments .comment h2 {
padding-top: 0; padding-top: 0;
font-size: 1rem; font-size: 1rem;
font-weight: 500; } font-weight: 500; }
.comments .comment h2 code {
background-color: transparent;
padding: 0; }
.comments .comment p { .comments .comment p {
width: 66%; } width: 66%; }

File diff suppressed because it is too large Load Diff