A small C library for building user interfaces with C, XML and CSS.
LCUI (LC's UI Library) is a small C library for building user interfaces.
Want to know what LCUI can do? You can view the following projects:
Quickly create an LCUI project using lcui-cli:
# Install lcui-cli npm install -g @lcui/cli # Create an LCUI project named myapp lcui create myapp # Go into project directory cd myapp # Install dependencies lcpkg install # Run it lcpkg run start
Use lcpkg to quick install LCUI in your project directory:
# Initialize the lcpkg configuration file to tell lcpkg about your project lcpkg init # Download and install the compiled LCUI library from GitHub lcpkg install github.com/lc-soft/LCUI
After successful installation, follow the help documentation output by lcpkg to configure your project's build configuration.
If you want to manually compile LCUI from source code:
lcpkg install # If you want compile for x64 CPU architecture lcpkg install --arch x64 # If you want compile for Universal Windows Platform (UWP) lcpkg install --platform uwp lcpkg install --arch x64 --platform uwp
config.win.h.inin the include directory to
build/windows/LCUI.slnfile with Visual Studio, and then build LCUI.
# Install the dependencies sudo apt-get install libpng-dev libjpeg-dev libxml2-dev libfreetype6-dev libx11-dev # Clone this repository git clone https://github.com/lc-soft/LCUI.git # Go into the repository cd LCUI # Generate automake configure script ./autogen.sh # Check the build environment and configure automake scripts ./configure # Build make # If you wnat install LCUI sudo make install # Go into test directory cd test # Run helloworld application ./helloworld
Note: If you want to customize the compiler, compile flags, install location, and other configuration items, read the INSTALL file.
The roadmap for this project is divided into primary and secondary roadmaps, with the primary roadmap developed by the project maintainer and the secondary roadmap developed by the open source community contributors and developers like you.
Think LCUI is slow to update? there are many ways to contribute to LCUI.
LCUI has adopted the code of conduct defined by the Contributor Covenant. This document is used across many open source communities, and we think it articulates our values well. For more, see the Code of Conduct.
The English version of the documentation is not available, because the author does not have time to write the English version, please read the files in the test directory and related projects to learn how to use LCUI.
Why develop it?
Is this a browser kernel? Or a development library like Electron that integrates the browser environment?
No, you can think of it as a traditional GUI development library that applied some Web technologies.
What do I need to pay attention to if I'm going to use it?
We recommend that your project meet the following requirements:
Why do I choose the LCUI instead of Electron?
In contrast to fully functional Electron, these features of LCUI, such as small binary file size and low memory usage, are not worth mentioning, except for technical research and share, you have no reason to use LCUI.
Is it the same as writing a web page?
Not exactly, there are the following differences need to be noted:
overflow: scroll;style doesn't show scrollbars automatically, you need to create it and specify the container and scroll layer.
How about CSS support?
The following is a list of supported CSS features. Checked is supported (But does not mean full support). Unlisted properties are not supported by default.
parent > child
a ~ b
The LCUI Project is released under the MIT License.
：Code submit frequency
：React/respond to issue & PR etc.
：Well-balanced team members and collaboration
：Recent popularity of project
：Star counts, download counts etc.