The modern to managing Client Libraries to be added to an AEM Site is using Editable Templates (via Policies) and not using the legacy Designs paradigm.
Likewise, since AEM 6.4, recommendation is to move any existing Designs out for /etc and into /apps/settings which renders them immutable at runtime (you cant modify them in the JCR via UIs)
Lastly, the API tooling to support this is geared towards JSPs, which have been superseded by HTL.
Purpose
AEM Designs (/etc/designs) traditionally holds data that does not have the same scope;
Design content: “per site”
Front End Assets: “cross-site”
Designer - ClientLibs Manager provides a simple interface and common abstraction for decoupling Front-end assets (CSS/JS Clientlibs) with Designs AND Page implementations.
Use Cases
Create one ClientLib (/etc/clientlibs/us-brands) and use it across all US Sites but not European sites simply by configuring the association on each site’s Design.
Usage
Override of the OOTB CQ Design Page implementation to allow for customization of “Head” and “Body” based ClientLibs.
Body Clientlibs only accept JavaScript as CSS should always be loaded in the Head.
In a Sightly script, you can use the head and body templates in the script /apps/acs-commons/sightly/templates/dhlm.html. The body template does not take any arguments. The head template accepts a mode argument which can be js, css, or all.