      1 /*
      2     Copyright 2008-2025
      3         Matthias Ehmann,
      4         Carsten Miller,
      5         Alfred Wassermann
      6
      7     This file is part of JSXGraph.
      8
      9     JSXGraph is free software dual licensed under the GNU LGPL or MIT License.
     10
     11     You can redistribute it and/or modify it under the terms of the
     12
     13       * GNU Lesser General Public License as published by
     14         the Free Software Foundation, either version 3 of the License, or
     15         (at your option) any later version
     16       OR
     17       * MIT License: https://github.com/jsxgraph/jsxgraph/blob/master/LICENSE.MIT
     18
     19     JSXGraph is distributed in the hope that it will be useful,
     20     but WITHOUT ANY WARRANTY; without even the implied warranty of
     21     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     22     GNU Lesser General Public License for more details.
     23
     24     You should have received a copy of the GNU Lesser General Public License and
     25     the MIT License along with JSXGraph. If not, see <https://www.gnu.org/licenses/>
     26     and <https://opensource.org/licenses/MIT/>.
     27  */
     28 import JXG from "../jxg.js";
     29
     30 // Constants for this theme:
     31 let size = 0.75,
     32     color = '#000';
     33
     34 JXG.themes['mono_thin'] = {
     35
     36         board: {
     37             showInfobox: false,
     38             showCopyright: true,
     39             defaultAxes: {
     40                 x: {
     41                     ticks: {
     42                         minorTicks: 0,
     43                         majorHeight: 10,
     44                         majorTickEndings: [1, 0]
     45                     }
     46                 },
     47                 y: {
     48                     ticks: {
     49                         minorTicks: 0,
     50                         majorHeight: 10,
     51                         majorTickEndings: [0, 1]
     52                     }
     53                 }
     54             }
     55         },
     56
     57         navbar: {
     58             strokeColor: '#bbb',
     59             fillColor: 'none'
     60         },
     61
     62         elements: {
     63             strokeColor: color,
     64             highlightStrokeColor: color,
     65             fillColor: 'none',
     66             highlightFillColor: 'none',
     67             strokeOpacity: 0.6,
     68             highlightStrokeOpacity: 1
     69         },
     70
     71         angle: {
     72             strokeColor: color,
     73             fillColor: '#aaaaaa55',
     74             fillOpacity: 0.3,
     75             highlightFillColor: '#aaaaaa33',
     76             highlightFillOpacity: 0.3,
     77             label: {
     78                 strokeColor: color
     79             }
     80         },
     81
     82         arc: {
     83             strokeColor: color,
     84             strokeWidth: size,
     85             highlightStrokeColor: color,
     86             highlightStrokeWidth: size
     87         },
     88
     89         axis: {
     90             // ticks: {
     91             //     strokeColor: '#bbb'
     92             // }
     93         },
     94
     95         boxplot: {
     96             strokeWidth: size,
     97             strokeColor: color,
     98             fillColor: color,
     99             fillOpacity: 0.2,
    100             highlightStrokeWidth: size,
    101             highlightStrokeColor: color,
    102             highlightFillColor: color,
    103             highlightFillOpacity: 0.1
    104         },
    105
    106         circle: {
    107             strokeWidth: size,
    108             highlightStrokeWidth: 1.5 * size,
    109             strokeColor: color,
    110             highlightFillColor: 'none',
    111             highlightStrokeColor: color,
    112             center: {
    113                 size: size,
    114                 fillColor: color,
    115                 strokeColor: color,
    116                 highlightStrokeWidth: 4 * size,
    117                 highlightFillColor: color,
    118                 highlightStrokeColor: color
    119             },
    120             point2: {
    121                 size: size,
    122                 fillColor: color,
    123                 strokeColor: color,
    124                 highlightStrokeWidth: 4 * size,
    125                 highlightFillColor: color,
    126                 highlightStrokeColor: color
    127             }
    128         },
    129
    130         circumcircle: {
    131             strokeWidth: size,
    132             highlightStrokeWidth: 1.5 * size,
    133             strokeColor: color,
    134             highlightFillColor: 'none',
    135             highlightStrokeColor: color,
    136             center: {
    137                 size: size,
    138                 fillColor: color,
    139                 strokeColor: color,
    140                 highlightStrokeWidth: 4 * size,
    141                 highlightFillColor: color,
    142                 highlightStrokeColor: color
    143             }
    144         },
    145
    146         circumcirclearc: {
    147             strokeColor: color,
    148             strokeWidth: size,
    149             highlightStrokeColor: color,
    150             highlightStrokeWidth: size
    151         },
    152
    153         circumcirclesector: {
    154             strokeColor: color,
    155             fillColor: '#aaaaaa55',
    156             fillOpacity: 0.3,
    157             highlightFillColor: '#aaaaaa33',
    158             highlightFillOpacity: 0.3
    159         },
    160
    161         comb: {
    162             strokeColor: color,
    163             strokeWidth: size
    164         },
    165
    166         conic: {
    167             strokeWidth: size,
    168             highlightStrokeWidth: 1.5 * size,
    169             strokeColor: color,
    170             highlightStrokeColor: color,
    171             fillColor: 'none',
    172             highlightFillColor: 'none'
    173         },
    174
    175         curve: {
    176             strokeColor: color,
    177             strokeWidth: size,
    178             highlightStrokeColor: color,
    179             highlightStrokeWidth: size
    180         },
    181
    182         grid: {
    183             strokeWidth: size
    184         },
    185
    186         hatch: {
    187             strokeColor: color,
    188             strokeWidth: size
    189         },
    190
    191         incircle: {
    192             strokeWidth: size,
    193             highlightStrokeWidth: 1.5 * size,
    194             strokeColor: color,
    195             highlightFillColor: 'none',
    196             highlightStrokeColor: color,
    197             center: {
    198                 size: size,
    199                 fillColor: color,
    200                 strokeColor: color,
    201                 highlightStrokeWidth: 4 * size,
    202                 highlightFillColor: color,
    203                 highlightStrokeColor: color
    204             }
    205         },
    206
    207         inequality: {
    208             fillColor: '#aaaaaa55',
    209             fillOpacity: 0.2
    210         },
    211
    212         integral: {
    213             fillColor: '#aaaaaa55',
    214             highlightFillColor: '#aaaaa33',
    215             fillOpacity: 0.3,
    216             highlightFillOpacity: 0.3,
    217             curveLeft: {
    218                 color: color
    219             },
    220             baseLeft: {
    221                 color: color
    222             },
    223             curveRight: {
    224                 color: color
    225             },
    226             baseRight: {
    227                 color: color
    228             }
    229         },
    230
    231         label: {
    232             strokeColor: color
    233         },
    234
    235         line: {
    236             strokeColor: color,
    237             strokeWidth: size,
    238             highlightStrokeColor: color,
    239             highlightStrokeWidth: size,
    240             point1: {
    241                 size: size,
    242                 fillColor: color,
    243                 strokeColor: color,
    244                 highlightStrokeWidth: 4 * size,
    245                 highlightFillColor: color,
    246                 highlightStrokeColor: color
    247             },
    248             point2: {
    249                 size: size,
    250                 fillColor: color,
    251                 strokeColor: color,
    252                 highlightStrokeWidth: 4 * size,
    253                 highlightFillColor: color,
    254                 highlightStrokeColor: color
    255             }
    256         },
    257
    258         normal: {
    259             strokeColor: color
    260         },
    261
    262         parallel: {
    263             strokeColor: color
    264         },
    265
    266         perpendicular: {
    267             strokeColor: color
    268         },
    269
    270         perpendicularsegment: {
    271             strokeColor: color
    272         },
    273
    274         point: {
    275             size: size,
    276             fillColor: color,
    277             strokeColor: color,
    278             highlightStrokeWidth: 4 * size,
    279             highlightFillColor: color,
    280             highlightStrokeColor: color
    281         },
    282
    283         polygon: {
    284             fillColor: '#aaaaaa55',
    285             highlightFillColor: '#aaaaaa33',
    286             fillOpacity: 0.3,
    287             highlightFillOpacity: 0.3,
    288             vertices: {
    289                 size: size,
    290                 fillColor: color,
    291                 strokeColor: color,
    292                 highlightStrokeWidth: 4 * size,
    293                 highlightFillColor: color,
    294                 highlightStrokeColor: color
    295             },
    296             borders: {
    297                 strokeColor: color,
    298                 strokeWidth: size,
    299                 highlightStrokeColor: color,
    300                 highlightStrokeWidth: size
    301             }
    302         },
    303
    304         sector: {
    305             strokeColor: color,
    306             fillColor: '#aaaaaa55',
    307             fillOpacity: 0.3,
    308             highlightFillColor: '#aaaaaa33',
    309             highlightFillOpacity: 0.3
    310         },
    311
    312         semicircle: {
    313             center: {
    314                 size: size,
    315                 fillColor: color,
    316                 strokeColor: color,
    317                 highlightStrokeWidth: 4 * size,
    318                 highlightFillColor: color,
    319                 highlightStrokeColor: color
    320             }
    321         },
    322
    323         slider: {
    324             size: size,
    325             fillColor: color,
    326             strokeColor: color,
    327             highlightStrokeWidth: 4 * size,
    328             highlightFillColor: color,
    329             highlightStrokeColor: color,
    330             baseline: {
    331                 strokeWidth: size,
    332                 strokeColor: color,
    333                 highlightStrokeColor: color
    334             },
    335             label: {
    336                 strokeColor: color
    337             },
    338             highline: {
    339                 strokeWidth: 3 * size,
    340                 name: '',
    341                 strokeColor: color,
    342                 highlightStrokeColor: color
    343             },
    344             ticks: {
    345                 strokeColor: color
    346             }
    347         },
    348
    349         slopefield: {
    350             strokeWidth: 0.75 * size,
    351             highlightStrokeWidth: size,
    352             highlightStrokeColor: color,
    353             highlightStrokeOpacity: 0.8
    354         },
    355
    356         tapemeasure: {
    357             strokeColor: color,
    358             strokeWidth: size,
    359             highlightStrokeColor: color,
    360             highlightStrokeWidth: size,
    361             point1: {
    362                 size: size,
    363                 fillColor: color,
    364                 strokeColor: color,
    365                 highlightStrokeWidth: 4 * size,
    366                 highlightFillColor: color,
    367                 highlightStrokeColor: color
    368             },
    369             point2: {
    370                 size: size,
    371                 fillColor: color,
    372                 strokeColor: color,
    373                 highlightStrokeWidth: 4 * size,
    374                 highlightFillColor: color,
    375                 highlightStrokeColor: color
    376             },
    377             ticks: {
    378                 strokeWidth: size
    379             }
    380         },
    381
    382         text: {
    383             strokeColor: color
    384         },
    385
    386         tracecurve: {
    387             strokeColor: color
    388         },
    389
    390         turtle: {
    391             strokeWidth: size,
    392             strokeColor: color,
    393             arrow: {
    394                 strokeWidth: 2 * size,
    395                 strokeColor: '#aaaaaa55'
    396             }
    397         },
    398
    399         vectorfield: {
    400             strokeWidth: 0.75 * size,
    401             highlightStrokeWidth: size,
    402             highlightStrokeColor: color,
    403             highlightStrokeOpacity: 0.8
    404         }
    405     // });
    406 };
    407
    408 export default JXG;