1
2
Fork 0
mirror of https://codeberg.org/pparaxan/quark.git synced 2026-05-11 22:54:56 +00:00
GUI toolkit for Zig focused on simplicity and performance. https://codeberg.org/pparaxan/quark
  • Zig 99.2%
  • GLSL 0.7%
Find a file
xanners eb2d6a81ad
Layout[Engine]: Refactor some code into functions
so that it could be easier on the developer when coding.

Co-authored-by: Claude <claude@anthropic.com>
Signed-off-by: xanners <xxdr@duck.com>
2026-05-10 10:48:02 -05:00
.forgejo CI[Format]: Revert c2e6a5d0af 2026-03-23 15:24:14 -05:00
.vscode .vscode: recommended extensions 2026-01-02 01:35:30 -05:00
.zed Zed: Tasks [of examples] 2026-03-06 16:09:34 -05:00
build Window: Move internal fields into a state struct 2026-03-23 09:39:15 -05:00
examples ChildWindow 2026-05-09 17:09:23 -05:00
src Layout[Engine]: Refactor some code into functions 2026-05-10 10:48:02 -05:00
.gitattributes Refactor files that's really just structs (and more—read desc) 2026-03-16 10:57:24 -05:00
.gitignore Preparing for Zig 0.16.x update, Git ignore zig-pkg/ 2026-04-19 17:48:44 -05:00
build.zig Window: Move internal fields into a state struct 2026-03-23 09:39:15 -05:00
build.zig.zon Update Quark to Zig 0.16 2026-04-19 20:00:35 -05:00
CONTRIBUTING.md Docs: CONTRIBUTING.md 2026-03-23 15:12:27 -05:00
DEPENDENCIES.md Docs: DEPENDENCIES.md 2026-03-23 15:12:27 -05:00
LICENSE Fix the ambiguous Unicode character located in LICENSE [skip ci] 2026-01-02 01:46:04 -05:00
README.md Remove Revolt (Stoat) badge from README.md 2026-04-27 08:42:47 -05:00

Quark

GUI toolkit focused on simplicity and performance.

Documentation QVersion License Zversion


Warning

Quark is currently in active development, only supporting Linux1. Other platforms such as Windows will be added based on developer demand.

Quark is designed for those who need a premium-feeling UI system without the overhead of massive frameworks. It prioritizes visual excellence and performance, leveraging Vulkan for rendering.

Note

For detailed installation instructions and hardware requirements, see DEPENDENCIES.md.

Getting Started

Quark is designed to be easy to use, along so—also easy to import to your project.

Firstly, zig fetch --save the latest release/commit.

And add the following to your build.zig:

pub fn build(b: *std.Build) !void {
    // [..] In the lists of const values you have, add this
    const libquark = b.dependency("quark", .{}).artifact("quark");
    
    const exe = b.addExecutable(.{
        .name = "<your application>",
        // [..]
        .root_module = b.createModule(.{
            .root_source_file = b.path("src/main.zig"),
            .target = target,
            .optimize = optimize,
            .imports = &.{
                // Expose the Quark library to your application.
                .{ .name = "quark", .module = libquark.root_module },
            },
            // Quark has some C libraries linked to it, make sure to enable libc in your application.
            .link_libc = true,
        }),
    });

    // Link Quark to your application.
    exe.root_module.linkLibrary(libquark);
    b.installArtifact(exe);
    
    // [..]
}

In your main Zig file, @import("quark") and you're all set—you're ready to develop your application with Quark. For code examples, we encourage you to read the README.md file located in the examples/ directory.


  1. It will only support the Wayland display protocol for the foreseeable future. ↩︎