archaeopteryx 3.27.0 → 3.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -1
- package/archaeopteryx.js +460 -153
- package/forester.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1213,6 +1213,86 @@ for the tree it moves to, and so does a new launch. A launch that is rejected
|
|
|
1213
1213
|
while an earlier viewer is still on the page leaves that viewer's report as
|
|
1214
1214
|
it was and adds one line saying what failed.
|
|
1215
1215
|
|
|
1216
|
+
### The host page's stylesheet
|
|
1217
|
+
|
|
1218
|
+
The viewer is drawn inside your page, in your page's document, so your
|
|
1219
|
+
stylesheet applies to it. A rule written for something else can reach it: on
|
|
1220
|
+
one site, `.Phylogeny svg { background: #FFFFFF }`, written when the tree was
|
|
1221
|
+
the only svg in that box, put a white square behind every icon of the control
|
|
1222
|
+
panel. The viewer now says for itself what it used to leave to the page:
|
|
1223
|
+
|
|
1224
|
+
* **Everything it puts on the page starts from the browser's own defaults.**
|
|
1225
|
+
The control panel, the dialogs, the menus, the tooltip, the "working" card
|
|
1226
|
+
and the alignment bar are untouched by rules written with element names
|
|
1227
|
+
only, whichever stylesheet comes first: a reset's `* { box-sizing:
|
|
1228
|
+
border-box }`, a framework's `label { font-weight: 700 }` or `button { font:
|
|
1229
|
+
inherit }`, `svg { fill: currentColor }`. And a sheet's `:focus { outline:
|
|
1230
|
+
0 }` no longer takes the keyboard focus ring off the viewer's controls.
|
|
1231
|
+
* **What your page hands down by inheritance stops at the viewer.** A page set
|
|
1232
|
+
in capitals, centred, or in a serif face does not set the panel, the dialogs
|
|
1233
|
+
or the tree that way.
|
|
1234
|
+
* **The tree's svg is `svg.aptx-tree`.** Its size and its font are stated
|
|
1235
|
+
inline (a page whose only svgs were icons, with `svg { width: 24px; height:
|
|
1236
|
+
24px }`, drew the tree 24 px square), and its background is a rectangle the
|
|
1237
|
+
viewer draws, not the svg's own.
|
|
1238
|
+
* **Every shape states its paint as an inline style**, in the tree and in the
|
|
1239
|
+
viewer's other svgs: its fill, its stroke, its opacity, a label's alignment.
|
|
1240
|
+
An svg *attribute* gives way to any rule of the page, so a chart's
|
|
1241
|
+
stylesheet written for a page with one chart on it, `path { fill: none;
|
|
1242
|
+
stroke: #000 }` or `text { font: 10px sans-serif }`, used to repaint the
|
|
1243
|
+
tree: its branches, its labels, its legends. What a shape does not state it
|
|
1244
|
+
has from its parent, whatever the page says of a `path`, a `rect` or a
|
|
1245
|
+
`text`: bare, in a state (`rect:hover`), or inside a container of yours
|
|
1246
|
+
(`.chart text`). Nor does a page-wide `* { transition: all .3s }` make the
|
|
1247
|
+
tree ease behind its own redraws.
|
|
1248
|
+
* **The icons, the logo and the clock plot** are untouched by a rule for a
|
|
1249
|
+
bare `svg` inside a container of yours (`.my-box svg { ... }`).
|
|
1250
|
+
|
|
1251
|
+
What still follows the page, on purpose: `direction`, `cursor`, `visibility`
|
|
1252
|
+
and `pointer-events` on whatever contains the viewer.
|
|
1253
|
+
|
|
1254
|
+
**To restyle the viewer deliberately, name its classes**, inside a container
|
|
1255
|
+
of your own so that your rule outweighs the viewer's: `.my-page svg.aptx-tree
|
|
1256
|
+
{ border: 1px solid #ccc }` (the border fits inside the tree's size),
|
|
1257
|
+
`.my-page .aptx-panel { ... }`.
|
|
1258
|
+
|
|
1259
|
+
**A shape's colours and strokes are not restyled by CSS any more.** Through
|
|
1260
|
+
3.27.0 a rule such as `#tree path { stroke-width: 2px }` thickened the
|
|
1261
|
+
branches, because their width was an attribute; an inline style gives way to
|
|
1262
|
+
nothing but `!important`. Colours, widths and fonts are what the
|
|
1263
|
+
configuration and the control panel are for; a rule that must override them
|
|
1264
|
+
says `!important`.
|
|
1265
|
+
|
|
1266
|
+
**What the viewer cannot do from inside your document:**
|
|
1267
|
+
|
|
1268
|
+
* A rule that names **a class of yours and an element** (`.content button {
|
|
1269
|
+
text-transform: uppercase }`, `.page label { ... }`) still reaches the
|
|
1270
|
+
viewer's buttons, labels and fields wherever the viewer's own rule for that
|
|
1271
|
+
control does not state the same property: the defaults above weigh less than
|
|
1272
|
+
one class, or they would outweigh the viewer's own rules. If your page has
|
|
1273
|
+
such rules around the viewer, scope them to your own content.
|
|
1274
|
+
* For a shape it takes more: a rule with two classes of yours, or an `id`,
|
|
1275
|
+
still reaches what a shape does not state itself (`.page .chart text {
|
|
1276
|
+
letter-spacing: 1px }` spaces the tree's labels).
|
|
1277
|
+
* Where a shape is, and how large, is still in its attributes (`x`, `y`,
|
|
1278
|
+
`width`, `d`, `r`, `transform`): a rule such as `rect { width: 100% }` or
|
|
1279
|
+
`circle { r: 4px }` moves or resizes the viewer's shapes too.
|
|
1280
|
+
* Nothing outranks a rule scoped by an `id`, or marked `!important`.
|
|
1281
|
+
|
|
1282
|
+
A file is another matter: it has no page around it. In an exported SVG file a
|
|
1283
|
+
shape's colours, strokes, opacities and text alignment are attributes
|
|
1284
|
+
(`fill="..."`, `stroke-opacity="..."`), the form every program that opens an
|
|
1285
|
+
svg reads; only fonts and `paint-order` are in `style`. Its colours are those
|
|
1286
|
+
SVG 1.1 has: what is `transparent` on the page is `none` in the file, and a
|
|
1287
|
+
translucent colour is the colour with a `fill-opacity` or `stroke-opacity`
|
|
1288
|
+
(Inkscape 1.1 draws `transparent` and `rgba(...)` as black).
|
|
1289
|
+
|
|
1290
|
+
`test/browser/host_css.html` launches the viewer under real stylesheets (the
|
|
1291
|
+
BV-BRC website's, Bootstrap 3 and 5, Tailwind's reset, and a sheet of single
|
|
1292
|
+
rules of kinds found on real pages), each added after the viewer's own, and
|
|
1293
|
+
fails on any difference from a launch in a clean page: in what any element
|
|
1294
|
+
computes to, and in where it sits.
|
|
1295
|
+
|
|
1216
1296
|
### Downloads
|
|
1217
1297
|
|
|
1218
1298
|
The panel's **Download** section (folded until you open it) holds the choices
|
|
@@ -1263,6 +1343,11 @@ tree, with the same columns, and a table that joins back onto the tree as
|
|
|
1263
1343
|
A full-size PDF taller or wider than 200 inches (14,400 pt, the PDF page
|
|
1264
1344
|
limit) is scaled onto the largest page; it is vector, so nothing is lost.
|
|
1265
1345
|
|
|
1346
|
+
**The SVG file is written for programs other than a browser**: a shape's
|
|
1347
|
+
paint is in attributes, and its colours are those SVG 1.1 has (no
|
|
1348
|
+
`transparent`, no `rgba(...)`, which Inkscape 1.1 draws as black). See [The
|
|
1349
|
+
host page's stylesheet](#the-host-pages-stylesheet).
|
|
1350
|
+
|
|
1266
1351
|
Newick and Nexus files usually carry branch support as a bare internal label
|
|
1267
1352
|
(`)100:0.05`). Archaeopteryx.js recognises those automatically and treats them
|
|
1268
1353
|
as confidence values, so support-based features work without any setup. If your
|
|
@@ -1600,7 +1685,7 @@ All 118 of them, alphabetically:
|
|
|
1600
1685
|
| `allowManualNodeSelection` | Renamed to `enableManualNodeSelection`. |
|
|
1601
1686
|
| `backgroundColorDefault` | The background is fixed. |
|
|
1602
1687
|
| `backgroundColorForPrintExportDefault` | The export background is fixed. |
|
|
1603
|
-
| `border` | Style the tree's svg with CSS instead. |
|
|
1688
|
+
| `border` | Style the tree's svg with CSS instead: it is `svg.aptx-tree` (a rule for a bare `svg` reaches the panel's icons too). |
|
|
1604
1689
|
| `branchColorDefault` | The default branch colour is fixed. |
|
|
1605
1690
|
| `branchDataFontSize` | Font size is fixed at launch (derived: 2px smaller than labels, floor 6px) and changed only via the in-panel Font slider — not a launch config key. |
|
|
1606
1691
|
| `branchWidthDefault` | Branch width follows the size of the tree. |
|