branch: elpa/casual
commit 35bc70e14aa3c2cd6d862d37a0181783682843b8
Merge: 7522e3bc76 783eb70203
Author: Charles Choi <[email protected]>
Commit: GitHub <[email protected]>

    Merge pull request #274 from kickingvegas/271-tune-casual-user-guide-css
    
    Tune Casual User Guide HTML CSS
---
 docs/Makefile           |   2 -
 docs/casual.info        | Bin 120784 -> 121770 bytes
 docs/casual.org         |  15 ++++-
 docs/casual.texi        |  23 +++++++-
 docs/main.css           | 147 +++++++++++++++++++++++++++++++++++++++++-------
 docs/texi2any-config.pm |   7 +++
 docs/timezone.org       |   7 ++-
 lisp/casual.el          | 106 ++++++++++++----------------------
 8 files changed, 210 insertions(+), 97 deletions(-)

diff --git a/docs/Makefile b/docs/Makefile
index c6e663344f..94002fa55f 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -27,8 +27,6 @@ gen-html: html html/images html/main.css sync-images
        --output=html                           \
        ${PKG_NAME}.texi
 
-# --init-file=texinfo.cfg
-
 html/images:
        mkdir -p $@
 
diff --git a/docs/casual.info b/docs/casual.info
index 9ce83e8dce..bf5c1a41ea 100644
Binary files a/docs/casual.info and b/docs/casual.info differ
diff --git a/docs/casual.org b/docs/casual.org
index aadb56805a..eda4882d3e 100644
--- a/docs/casual.org
+++ b/docs/casual.org
@@ -16,7 +16,6 @@
 #+TEXINFO_DIR_NAME: Casual
 #+TEXINFO_DIR_DESC: Transient user interfaces for different Emacs modes.
 #+TEXINFO_PRINTED_TITLE: Casual User Guide
-#+TEXINFO_FOOTER: https://buymeacoffee.com/kickingvegas
 
 Version: {{{version}}}
 
@@ -30,6 +29,18 @@ Casual has no aims to be a mutually exclusive user 
interface. All existing user
 
 To learn more about the motivations and design considerations for Casual and 
to see it at work, please watch the presentation 
[[https://emacsconf.org/2024/talks/casual/][“Re-imagining the Emacs User 
Experience with Casual Suite”]] from EmacsConf 2024.
 
+/Example Casual menu - Dired/
+
+[[file:images/casual-dired-screenshot.png]]
+
+/Example Casual menu - EditKit/
+
+[[file:images/casual-editkit-main-screenshot.png]]
+
+/Example Casual menu - Calc/
+
+[[file:images/casual-calc-tmenu.png]]
+
 #+INCLUDE: "./sponsorship.org"
 
 * Copying
@@ -126,7 +137,7 @@ Certain menus require more installed software:
 * Install
 #+CINDEX: Install
 
-Standard installation of the ~casual~ package is via MELPA distribution. 
+Standard installation of the ~casual~ package is via 
[[https://melpa.org/#/casual][MELPA distribution]]. 
 
 Configuration of a particular Casual user interface is performed per mode. Go 
to the *Install* section for a mode of interest below for guidance on its 
configuration.
 
diff --git a/docs/casual.texi b/docs/casual.texi
index f3f12cb48b..4e2056051a 100644
--- a/docs/casual.texi
+++ b/docs/casual.texi
@@ -45,6 +45,18 @@ Casual has no aims to be a mutually exclusive user 
interface. All existing user
 
 To learn more about the motivations and design considerations for Casual and 
to see it at work, please watch the presentation 
@uref{https://emacsconf.org/2024/talks/casual/, “Re-imagining the Emacs User 
Experience with Casual Suite”} from EmacsConf 2024.
 
+@emph{Example Casual menu - Dired}
+
+@image{images/casual-dired-screenshot,,,,png}
+
+@emph{Example Casual menu - EditKit}
+
+@image{images/casual-editkit-main-screenshot,,,,png}
+
+@emph{Example Casual menu - Calc}
+
+@image{images/casual-calc-tmenu,,,,png}
+
 If you enjoy using Casual, consider making a modest financial contribution to 
help support its development and maintenance.
 
 @image{images/default-yellow,,,,png}
@@ -391,7 +403,7 @@ Casual Image: ImageMagick 6+
 
 @cindex Install
 
-Standard installation of the @code{casual} package is via MELPA distribution. 
+Standard installation of the @code{casual} package is via 
@uref{https://melpa.org/#/casual, MELPA distribution}. 
 
 Configuration of a particular Casual user interface is performed per mode. Go 
to the @strong{Install} section for a mode of interest below for guidance on 
its configuration.
 
@@ -2872,6 +2884,9 @@ These commands are offered in the menu 
@code{casual-timezone-tmenu} shown below.
 @node Timezone Formatting
 @subsubsection Timezone Formatting
 
+@vindex casual-timezone-datestamp-format
+@vindex casual-timezone-convert-datestamp-format
+
 The formatted representation of time in Casual Timezone is set by the 
following customizable variables:
 
 @itemize
@@ -2901,6 +2916,10 @@ These variables can be customized via the Transient menu 
@code{casual-timezone-s
 @node Planner Configuration
 @subsubsection Planner Configuration
 
+@vindex casual-timezone-working-hours-range
+@vindex casual-timezone-working-hour-glyph
+@vindex casual-timezone-planner-working-highlight
+
 The following variables can control how working hours are displayed in the 
timezone planner.
 
 @itemize
@@ -2917,6 +2936,8 @@ These variables can be customized via the Transient menu 
@code{casual-timezone-s
 @node Zoneinfo Database
 @subsubsection Zoneinfo Database
 
+@vindex casual-timezone-zone-info-database
+
 The variable @code{casual-timezone-zone-info-database} is default set to the 
path ``/usr/share/zoneinfo/tzdata.zi''. Customize this variable if the zoneinfo 
database is located at a different path.
 
 @node Timezone Unicode Symbol Support
diff --git a/docs/main.css b/docs/main.css
index f76e06c38d..d45c0c8fc3 100644
--- a/docs/main.css
+++ b/docs/main.css
@@ -1,40 +1,142 @@
 /**
-
+ * Copyright 2025 Charles Y. Choi
  */
 
-body {
-    margin: 0pt;
-    padding: 0.5in;
-    font-family: Optima, Helvetica, Arial;
-    font-size: 12pt;
-    //counter-reset: chapter;
+@media (prefers-color-scheme: dark) {
+    .body.adaptive {
+        background-color: #1C1C1C;
+        color: #f0f0f0;
+    }
+
+    .lisp-preformatted {
+        background-color: #2F2F2F;
+        color: #F0F0F0;
+        font-family: Menlo, Consolas, "Noto Mono", monospace, Monaco, "Courier 
New", Courier;
+        font-size: 85%;
+        padding: 8pt;
+    }
+
+    a:link, a:visited {
+        color: #3287a8;
+        text-decoration: none;
+    }
+
+    a:hover, a:active {
+        color: #32a885;
+        text-decoration: underline;
+    }
+}
+
+@media (prefers-color-scheme: light) {
+    .body.adaptive {
+        background-color: #f9f9f9;
+        color: black;
+    }
+
+    .lisp-preformatted {
+        font-family: Menlo, Consolas, "Noto Mono", monospace, Monaco, "Courier 
New", Courier;
+        font-size: 85%;
+        padding: 8pt;
+    }
+
+    a:link, a:visited {
+        color: blue;
+        text-decoration: none;
+    }
+
+    a:hover, a:active {
+        color: #1593F5;
+        text-decoration: underline;
+    }
+}
+
+@media only screen and (max-device-width: 500px) {
+    body {
+        margin: 0pt;
+        padding-top: 0.05in;
+        padding-left: 0.15in;
+        padding-right: 0.15in;
+        padding-bottom: 0.05in;
+        font-family: Optima, Constantia, 'Linux Biolinum O', "Linux Libertine 
Display O", 'Times New Roman', Arial;
+        font-size: 14pt;
+    }
 }
 
-/* h1:before { */
-/*     content: counter(chapter) ". "; */
-/*     counter-increment: chapter; */
-/* } */
+@media only screen and (width > 500px) {
+    body {
+        margin: 0pt;
+        padding-top: 0.25in;
+        padding-left: 0.5in;
+        padding-right: 0.5in;
+        padding-bottom: 0.25in;
+        font-family: Optima, Constantia, 'Linux Biolinum O', "Linux Libertine 
Display O", 'Times New Roman', Arial;
+        font-size: 14pt;
+    }
+}
+
+p {
+    margin-top: 2pt;
+    margin-bottom: 10pt;
+    line-height: 1.4;
+}
+
+ul {
+    line-height: 1.4;
+    margin-top: 1pt;
+    margin-bottom: 10pt;
+    padding-left: 0.25in;
+}
+
+ol {
+    line-height: 1.4;
+    margin-top: 1pt;
+    margin-bottom: 10pt;
+    padding-left: 0.25in;
+}
 
 h1 {
-    // background-color: lightgrey;
-    font-size: 16pt;
-    //counter-reset: section1;
+    font-size: 130%;
+    margin-top: 30pt;
+    margin-bottom: 10pt;
+    line-height: 1.1;
 }
 
 h2 {
-    font-size: 14pt;
+    font-size: 110%;
+    margin-top: 20pt;
+    margin-bottom: 10pt;
+    line-height: 1.1;
 }
 
 h3 {
-    // font-style: oblique;
-    font-size: 14pt;
+    font-size: 110%;
+    margin-top: 10pt;
+    margin-bottom: 10pt;
+    line-height: 1.1;
 }
 
 h4 {
-    font-size: 14pt;
-    //font-style: oblique;
+    font-size: 110%;
+    margin-top: 10pt;
+    margin-bottom: 10pt;
+    line-height: 1.1;
 }
 
+h5 {
+    font-style: oblique;
+    margin-top: 0pt;
+    margin-bottom: 5pt;
+    line-height: 1.1;
+}
+
+h6 {
+    font-style: oblique;
+    margin-top: 1pt;
+    margin-bottom: 5pt;
+    line-height: 1.1;
+}
+
+
 table {
    border-style: solid;
    border-width: 1px;
@@ -70,7 +172,12 @@ tfoot {
 
 
 pre {
-     background-color: #ECECEC
+    font-family: Menlo, Consolas, "Noto Mono", monospace, Monaco, "Courier 
New", Courier;
+    background-color: #ECECEC
+}
+
+code {
+    font-family: Menlo, Consolas, "Noto Mono", monospace, Monaco, "Courier 
New", Courier;
 }
 
 .break {
diff --git a/docs/texi2any-config.pm b/docs/texi2any-config.pm
new file mode 100644
index 0000000000..681f37b284
--- /dev/null
+++ b/docs/texi2any-config.pm
@@ -0,0 +1,7 @@
+# Copyright 2005 Charles Y. Choi
+#
+texinfo_set_from_init_file('BODY_ELEMENT_ATTRIBUTES', 'class="body adaptive" 
lang="en"');
+# texinfo_set_from_init_file('VERTICAL_HEAD_NAVIGATION', 1);
+# texinfo_set_from_init_file('SHOW_TITLE', 1);
+# texinfo_set_from_init_file('USE_TITLEPAGE_FOR_TITLE', 1);
+# texinfo_set_from_init_file('USE_NODE_DIRECTIONS', 0);
diff --git a/docs/timezone.org b/docs/timezone.org
index e9a5aa697b..15b8a0018d 100644
--- a/docs/timezone.org
+++ b/docs/timezone.org
@@ -37,6 +37,8 @@ These commands are offered in the menu 
~casual-timezone-tmenu~ shown below.
 
 
 *** Timezone Formatting
+#+VINDEX: casual-timezone-datestamp-format
+#+VINDEX: casual-timezone-convert-datestamp-format
 
 The formatted representation of time in Casual Timezone is set by the 
following customizable variables:
 
@@ -56,6 +58,9 @@ The following table shows which format variable applies to 
which command.
 These variables can be customized via the Transient menu 
~casual-timezone-settings-tmenu~.
 
 *** Planner Configuration
+#+VINDEX: casual-timezone-working-hours-range
+#+VINDEX: casual-timezone-working-hour-glyph
+#+VINDEX: casual-timezone-planner-working-highlight
 
 The following variables can control how working hours are displayed in the 
timezone planner.
 
@@ -66,9 +71,9 @@ The following variables can control how working hours are 
displayed in the timez
 These variables can be customized via the Transient menu 
~casual-timezone-settings-tmenu~.
 
 *** Zoneinfo Database
+#+VINDEX: casual-timezone-zone-info-database
 
 The variable ~casual-timezone-zone-info-database~ is default set to the path 
"/usr/share/zoneinfo/tzdata.zi". Customize this variable if the zoneinfo 
database is located at a different path.
 
-
 *** Timezone Unicode Symbol Support
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
Timezone will use Unicode symbols as appropriate in its menus.
diff --git a/lisp/casual.el b/lisp/casual.el
index a1c62ff88a..74b659bd78 100644
--- a/lisp/casual.el
+++ b/lisp/casual.el
@@ -26,116 +26,80 @@
 ;; Casual is a collection of opinionated Transient-based keyboard driven user
 ;; interfaces for various built-in modes.
 
-;; INSTALLATION
-
 ;; Casual is organized into different user interface (UI) libraries tuned for
 ;; different modes. Different user interfaces for the following modes are
 ;; supported:
 
-;; - Agenda (Elisp library: `casual-agenda')
+;; - Agenda (Elisp library: `casual-agenda.el')
 ;;   An interface for Org Agenda to help you plan your day.
-;;   URL `https://github.com/kickingvegas/casual/blob/main/docs/agenda.org'
 
-;; - Bookmarks (Elisp library: `casual-bookmarks')
+;; - Bookmarks (Elisp library: `casual-bookmarks.el')
 ;;   An interface for editing your bookmark collection.
-;;   URL `https://github.com/kickingvegas/casual/blob/main/docs/bookmarks.org'
 
-;; - Calc (Elisp library: `casual-calc')
+;; - Calc (Elisp library: `casual-calc.el')
 ;;   An interface for Emacs Calc, an embarrasingly feature-rich calculator.
-;;   URL `https://github.com/kickingvegas/casual/blob/main/docs/calc.org'
 
-;; - Calendar (Elisp library: `casual-calendar')
+;; - Calendar (Elisp library: `casual-calendar.el')
 ;;   An interface for the built-in calendar and diary of Emacs.
-;;   URL `https://github.com/kickingvegas/casual/blob/main/docs/calendar.org'
 
-;; - Dired (Elisp library: `casual-dired')
+;; - Compile (Elisp library: `casual-compile.el')
+;;   An interface for the output of the `compile' and Grep commands.
+
+;; - Dired (Elisp library: `casual-dired.el')
 ;;   An interface for the venerable file manager Dired.
-;;   URL `https://github.com/kickingvegas/casual/blob/main/docs/dired.org'
 
-;; - EditKit (Elisp library: `casual-editkit')
+;; - EditKit (Elisp library: `casual-editkit.el')
 ;;   A cornucopia of interfaces for the different editing features (e.g.
 ;;   marking, copying, killing, duplicating, transforming, deleting) of Emacs.
 ;;   Included are interfaces for rectangle, register, macro, and project
 ;;   commands.
-;;   URL `https://github.com/kickingvegas/casual/blob/main/docs/editkit.org'
 
-;; - Eshell (Elisp library: `casual-eshell')
-;;   A user interface for Eshell, a shell-like command interpreter implemented
-;;   in Emacs Lisp.
-;;   URL `https://github.com/kickingvegas/casual/blob/main/docs/eshell.org'
+;; - Elisp (Elisp library: `casual-elisp.el')
+;;   An interface for `emacs-lisp-mode'. It provides a menu for commands useful
+;;   for Elisp development.
+
+;; - Eshell (Elisp library: `casual-eshell.el')
+;;   An interface for Eshell, a shell-like command interpreter implemented in
+;;   Emacs Lisp.
+
+;; - Help (Elisp library: `casual-help.el')
+;;   An interface for `help-mode', a major mode for viewing help text and
+;;   navigating references in it.
 
-;; - Image (Elisp library: `casual-image')
+;; - IBuffer (Elisp library: `casual-ibuffer.el')
+;;   An interface to Emacs IBuffer, a mode designed for managing buffers.
+
+;; - Image (Elisp library: `casual-image.el')
 ;;   An interface for viewing an image file with `image-mode'.
 ;;   Resizing an image is supported if ImageMagick 6 or 7 is installed. This
 ;;   interface deviates significantly with naming conventions used by
 ;;   `image-mode' to be more in alignment with conventional image editing 
tools.
-;;   URL `https://github.com/kickingvegas/casual/blob/main/docs/image.org'
 
-;; - Info (Elisp library: `casual-info')
+;; - Info (Elisp library: `casual-info.el')
 ;;   An interface for the Info documentation system.
-;;   URL: `https://github.com/kickingvegas/casual/blob/main/docs/info.org'
 
-;; - I-Search (Elisp library: `casual-isearch')
+;; - I-Search (Elisp library: `casual-isearch.el')
 ;;   An interface for the many commands supported by I-Search.
-;;   URL: `https://github.com/kickingvegas/casual/blob/main/docs/isearch.org'
 
-;; - Make (Elisp library: `casual-make')
+;; - Make (Elisp library: `casual-make.el')
 ;;   An interface to `make-mode'.
-;;   URL: `https://github.com/kickingvegas/casual/blob/main/docs/make-mode.org'
 
-;; - Man (Elisp library: `casual-man')
-;;   An interface to `Man-mode'.
-;;   URL: `https://github.com/kickingvegas/casual/blob/main/docs/man.org'
+;; - Man (Elisp library: `casual-man.el')
+;;   An interface to `Man-mode', the Emacs Man page reader.
 
-;; - Re-Builder (Elisp library: `casual-re-builder')
+;; - Re-Builder (Elisp library: `casual-re-builder.el')
 ;;   An interface for the Emacs regular expression tool.
-;;   URL: 
`https://github.com/kickingvegas/casual/blob/main/docs/re-builder.org'
 
-;; - Timezone (Elisp library: `casual-timezone')
+;; - Timezone (Elisp library: `casual-timezone.el')
 ;;   A library of commands to work with different time zones.
-;;   URL: `https://github.com/kickingvegas/casual/blob/main/docs/timezone.org'
+
+;; INSTALLATION
 
 ;; Users can choose any or all of the user interfaces made available by Casual
 ;; at their pleasure.
 
-;; UPGRADING to Casual 2.x
-
-;; If you have been using an earlier version 1.x of Casual, thank you. Please
-;; use the following guidance:
-
-;; * If you do not use `use-package' to configure Casual
-
-;; Before installing Casual, you should update all of your existing Casual
-;; packages. This is most easily done via the package menu buffer described in
-;; info node `(emacs) Package Menu'. After updating your packages, install the
-;; `casual' package.
-
-;; Migrate your existing Casual packages from 1.x to 2.x by running the
-;; following commands:
-
-;; M-x load-library casual
-;; M-x casual-upgrade-base-to-version-2
-
-;; Any Casual v1.x packages that have been superseded by this package will be
-;; uninstalled.
-
-;; While not necessary, it is recommended to run `package-autoremove' to purge
-;; any dangling dependent packages. Cautious readers can choose to audit any
-;; packages that are targeted to be removed.
-
-;; * If you have used `use-package' to configure Casual
-
-;; For version 2.x going forward, I (Charles Choi) have decided to not offer 
any
-;; documented guidance on using `use-package' to configure Casual due my lack 
of
-;; expertise in using it. I leave it to more skilled readers to determine how 
to
-;; best use it (described in info node `(use-package) Top') for their
-;; configuration. Please also note that this is not a prohibition on using
-;; `use-package' with Casual. I am simply admitting that I don't know how to 
use
-;; it.
-
-;; That said, if you have used :ensure t to install a superseded package, you
-;; must remove that configuration. After doing so, please follow the above
-;; instructions for installing `casual'.
+;; Configuration of a particular Casual user interface is performed per mode.
+;; For details, refer to the Info node `(casual) Install'.
 
 ;; Casual relies on the latest stable release of `transient' which may differ
 ;; from the version that is preinstalled as a built-in. By b default, 
`package.el'

Reply via email to