A collection of re-usable views, controls & utilities for Cappuccino.
Failed to load latest commit information.
.gitignore LPKit can now be compiled properly using jake Jan 16, 2010
Info.plist LPKit can now be compiled properly using jake Jan 16, 2010
Jakefile symlink the correct files into narwhal, also allow passing a raw url … Jul 23, 2010
LICENSE added license Oct 12, 2009
LPAnchorButton.j symlink the correct files into narwhal, also allow passing a raw url … Jul 23, 2010
LPCalendarHeaderView.j minor code cleanup in LPChartView Aug 11, 2010
LPCalendarMonthView.j if selection length type is changed in Calendar View, reflect it in t… Jul 28, 2010
LPCalendarView.j fix for CalendarView not drawing the grid correctly, due to a recent … Sep 5, 2010
LPChartView.j slight formatting fix Sep 4, 2010
LPCookieController.j make escaping cookie values optional Sep 22, 2010
LPCrashReporter.j added autoresizing masks to cancel button in LPCrashReporter report w… Mar 14, 2010
LPEmail.j Shouldn't be two calls to test the email pattern. Closes #2 Dec 6, 2009
LPKit.j added missing import Jan 13, 2010
LPLocationController.j use window.onhashchange if that is available in the LocationController Jun 24, 2010
LPMultiLineTextField.j Added option to disable scrollbars from appearsing on overflow Sep 3, 2010
LPPieChartView.j LPChartView should make a copy of the draw view. Jan 23, 2010
LPSlideView.j correct ivar declaration Jul 27, 2010
LPSparkLine.j removed leftover method in sparkline. Jan 29, 2010
LPSwitch.j New LPViewController, with new & better API and also supports using h… Jun 25, 2010
LPURLPostRequest.j use more sane escaping Apr 8, 2010
LPViewAnimation.j always try to activate hardware acceleration in css animations Sep 21, 2010
README.markdown added randy as a contributor in the readme Aug 19, 2010



A collection of different generic views & utilities for Cappuccino, extracted from Observer.

A demo is available at http://luddep.se/static/LPKit-Examples/, with the source code in the LPKit-Examples repository.

LPKit requires Cappuccino 0.8.1.


Place the entire LPKit folder in your Frameworks folder, or any directory that you add using OBJJ_INCLUDE_PATHS.

What's inside

Slide view

LPSlideView lets you slide between different subviews. Only one subview will be visible, and the sliding only shows the relevant subviews - no matter how many other views might be between them.

Calendar view

calendar view

LPCalendarView is a calendar view based on the iPhone calendar app, with the same sliding when changing months. Currently supports selecting days & weeks, also marking a special day as highlighted - such as the current day or week.


calendar view

A fully customizable chart view that can be used to implement either Bar or Line charts.


calendar view

A fully customizable pie chart view.



A simple sparkline chart, comparable to the Google Chart sparklines - but using CoreGraphics rather than an image.

Switch control

switch control

A port of the UISwitch from the iPhone SDK, with the same behavior and feel.

Anchor Button

A control which can either simulate anchors, or if provided with a CPURL creates an anchor element. Useful for creating hyperlinks.



A simple object which lets you validate emails, for now. NOTE: the current regexp is broken, needs to be replaced with one that actually works.


A wrapper around CPURLRequest to make working with post requests a bit simpler. Rather than manually settings the HTTPBody & Content-Type, you pass it a javascript object with key value pairs of strings which you want to send as a POST request.


var request = [LPURLPostRequest requestWithURL:[CPURL URLWithString:@"/my-url/"]],
    content = {
                  'name': 'Lorem ipsum',
                  'age': '18'

[request setContent:content]
[CPURLConnection connectionWithRequest:request delegate:self];


A utility class to work with document.cookie, without the tedious stuff.


var cookieController = [LPCookieController sharedCookieController];

// Set a session, which will be deleted when the browser closes.
[cookieController setValue:@"My value" forKey:@"MyKey"];

// Set a cookie which won't be flushed
[cookieController setValue:@"My value" forKey:@"MyOtherKey" expirationDate:[CPDate distantFuture]];

// Get the value of the session
console.log('value for MyKey: ' + [cookieController valueForKey:@"MyKey"]);


LPKit makes heavy use of the theme API in Cappuccino. An example on how to use themes with LPKit is available in in the LPKit-Examples repository which has a demo theme with an Aristo inspired look.